diff --git a/blog/cinit-0.3pre19-released.mdwn b/blog/cinit-0.3pre19-released.mdwn new file mode 100644 index 00000000..1b484bde --- /dev/null +++ b/blog/cinit-0.3pre19-released.mdwn @@ -0,0 +1,6 @@ +[[!meta title="Cinit 0.3pre19 released"]] + +Version ***0.3pre19*** of [[cinit-0.3|software/cinit]] +contains a lot cleanups for the final 0.3 release. + +[[!tag unix]] diff --git a/software/cinit.mdwn b/software/cinit.mdwn index 6bf95015..e4d7d97f 100644 --- a/software/cinit.mdwn +++ b/software/cinit.mdwn @@ -84,6 +84,9 @@ Additionally, the following other git ressources are available: ### Archives + * [[cinit-0.3pre19.tar.bz2|archives/cinit-0.3pre19.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre19/)) + [[changes|browse_source/cinit-0.3pre19/doc/changes/0.3pre19]] * [[cinit-0.3pre18.tar.bz2|archives/cinit-0.3pre18.tar.bz2]] ([browse source](browse_source/cinit-0.3pre18/)) [[changes|browse_source/cinit-0.3pre18/doc/changes/0.3pre18]] diff --git a/software/cinit/archives/cinit-0.3pre19.tar.bz2 b/software/cinit/archives/cinit-0.3pre19.tar.bz2 new file mode 100644 index 00000000..198d67cf Binary files /dev/null and b/software/cinit/archives/cinit-0.3pre19.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/ b/software/cinit/browse_source/cinit-0.3pre19/ new file mode 100644 index 00000000..73dc3060 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/ @@ -0,0 +1,4 @@ +This is a non-existing file, how did you find it? ;-) + +It seems like you know a bit about your system, perhaps +you want to join cinit development in #cLinux on irc.freenode.org? diff --git a/software/cinit/browse_source/cinit-0.3pre19/.ditz-config b/software/cinit/browse_source/cinit-0.3pre19/.ditz-config new file mode 100644 index 00000000..e831e23d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/.ditz-config @@ -0,0 +1,4 @@ +--- !ditz.rubyforge.org,2008-03-06/config +name: Nico Schottelius +email: nico@ikn.schottelius.org +issue_dir: bugs diff --git a/software/cinit/browse_source/cinit-0.3pre19/.ditz-plugins b/software/cinit/browse_source/cinit-0.3pre19/.ditz-plugins new file mode 100644 index 00000000..2756e1e9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/.ditz-plugins @@ -0,0 +1 @@ +- git diff --git a/software/cinit/browse_source/cinit-0.3pre19/.gitignore b/software/cinit/browse_source/cinit-0.3pre19/.gitignore new file mode 100644 index 00000000..08ec3283 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/.gitignore @@ -0,0 +1,31 @@ +*.o +*.a +MT +ddoc +contrib+tools/cinit.graph.text +config.h +sbin +tmp +os/current +tmpbin +src/os/current +src/ipc/current +src/cinit +*.html +*.htm +*.man +*.texi +*.texi +*.docbook +src/halt.kill +src/poweroff.kill +src/reboot.kill +doc/man/*.[0-9] +doc/man/*.xml +src/cmd +.*.swp +.exclude +src/.configured +src/cinit.halt +src/cinit.poweroff +src/cinit.reboot diff --git a/software/cinit/browse_source/cinit-0.3pre19/Makefile b/software/cinit/browse_source/cinit-0.3pre19/Makefile new file mode 100644 index 00000000..2ee5729f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/Makefile @@ -0,0 +1,143 @@ +# +# 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Don't edit Makefiles, use conf/* for configuration. +# + +# Directories and files +CDIRS=bin src doc + +# +# Targets +# + +# +# Warn per default, make sure the user knows what she does +# +warn: + @cat doc/.buildwarn + +all: sources documentation +dev-all: all + +install clean dist distclean: + @for subdir in ${CDIRS}; do \ + echo "Making $@ in $$subdir"; \ + (cd $$subdir && ${MAKE} ${MAKEFLAGS} $@) || break; \ + done; + +# Fix installation of conf/, check that bin/ is working and then +# release +install: + +.PHONY: sources +sources: + ${MAKE} -C src all + +.PHONY: documentation +documentation: + ${MAKE} -C doc documentation + +install-miniconf: + ./bin/cinit.install.miniconf + +install-dir: + ./bin/cinit.install.dir + +################################################################################ +# Tests +# +tests: + # does not work, due getting killed, due to design :-) + #./scripts/internal/compile_run_as_compiler.sh + ./scripts/internal/test_on_hosts.sh ./scripts/internal/compile_test.sh + +### User Mode Linux / DIRECTORY +UML_DIR_OS_DEBIAN=lenny +UML_ROOT_DIR=~/cinit/vm/uml/$(UML_DIR_OS_DEBIAN) +UML_ROOT_DIR_ABS=$(shell cd $(UML_ROOT_DIR) && pwd -P) +CONFDIR=etc/cinit/ + +uml-install-debian: + mkdir -p $(UML_ROOT_DIR) + sudo /usr/sbin/debootstrap $(UML_DIR_OS_DEBIAN) $(UML_ROOT_DIR) + me=$$(whoami); sudo chown -R $$me $(UML_ROOT_DIR) + +# only install binaries, no need to test documentation +uml-install-config: + rsync -av --delete ./$(CONFDIR) $(UML_ROOT_DIR)/$(CONFDIR) + +uml-install-cinit: + dir=$$(cd $(UML_ROOT_DIR); pwd -P); make -C src DESTDIR=$$dir install + +uml-dir-start-cinit: uml-install-config + dir=$$(cd $(UML_ROOT_DIR); pwd -P); linux root=/dev/root rootflags=$$dir rootfstype=hostfs init=/sbin/cinit + +uml-dir-start-plain: + ./scripts/vm/uml-dir-start-plain.sh $(UML_ROOT_DIR_ABS) + +### User Mode Linux / IMAGE +UML_IMG_FILE=~/cinit/vm/uml/Debian-3.0r0.ext2 +uml-img-start-cinit: + ./scripts/vm/uml-img-start-cinit.sh $(UML_IMG_FILE) + +uml-img-start-plain: + ./scripts/vm/uml-img-start-plain.sh $(UML_IMG_FILE) + +# debian-etch +de-install: + rsync -av --delete ./ root@de:cinit + rsync -av --delete ./etc/cinit/ root@de:/etc/cinit + ssh root@de '(cd cinit; make clean install)' + +de-run: + ssh root@de reboot + +UBUNTUHOST=cinit@192.168.122.107 +UBUNTUCONF=./etc/cinit-ubuntu +UBUNTUINSTALL="cd cinit && make clean && sudo make install" +UBUNTUTEST="sudo reboot" +ubuntu-sync: + rsync -av --delete ./ $(UBUNTUHOST):cinit +ubuntu-install: ubuntu-sync + ssh "$(UBUNTUHOST)" $(UBUNTUINSTALL) + +ubuntu-test: ubuntu-install + ssh "$(UBUNTUHOST)" $(UBUNTUTEST) + +################################################################################ +# +# Developer targets +# + +release: ./scripts/internal/cinit.release + ./scripts/internal/cinit.release now + +scripts/internal/cinit.release: ./scripts/internal/test-cmd.sh + ./scripts/internal/test-cmd.sh + +WEBFILE=~/privat/computer/net/netzseiten/www.nico.schottelius.org/src/software/cinit.mdwn +.PHONY: web +web: README + cp $< $(WEBFILE) + +cinitconfconfdir=../cinit-conf/conf +sync-conf: + rsync --delete -av ./conf/ $(cinitconfconfdir) + cd $(cinitconfconfdir); git add .; git commit -m "sync with cinit/conf" diff --git a/software/cinit/browse_source/cinit-0.3pre19/README b/software/cinit/browse_source/cinit-0.3pre19/README new file mode 100644 index 00000000..e4d7d97f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/README @@ -0,0 +1,241 @@ +cinit is a fast, small and simple init with support for profiles + +## Introduction + +cinit is a fast init system with dependency features and +profile support. It was orientated on the design of +Richard Goochs +[need concept](http://www.atnf.csiro.au/people/rgooch/linux/boot-scripts/) +and Felix von Leitners +[minit](http://www.fefe.de/minit/). +Minit does not support real dependencies (you don't know whether the +service you depend on really started) and the need concept is somehow +slow (as seen in gentoo). +In addition, minit needs libowfat and dietlibc, which may not be found +on every Unix system. + +### Cinit main features + +* portability: it should run on every Unix +* true dependencies (soft and hard!) +* parallel execution +* highly customisable (see conf/*) +* profile support (specify what services to start depending on the profile) + + +### Why should I use cinit? + + * To significant speedup the startup process + * To use highest level of parallelisation at startup + * To benefit from real dependencies (so called ***needs*** and ***wants***) + * To easily create profiles that can be chosen at startup (even **before** init is started!) + +### How does cinit work? + +Cinit creates a dependency tree at startup and executes the services. +A service can have two type of dependencies: + + * ***wants*** describe soft dependencies (i.e. it's not fatal if the wanted service fails to start) + * ***needs*** describe hard dependencies (if the needed service fails, the depending won't be started) + +Let's have a look at an example: + + + A + (wants) + / \ + |------> B \ C + | / \ / \ + ^ (needs) (needs) (wants) + | D E F + | | + |------<------(needs)----| + + +Or in words: + + * B and C do not have dependencies + * They will be started at the beginning + * A wants B and C + * A waits until B and C are executed and started afterwards, + independently of the success of B and C + * A will also be started, if B and C fail to start. + * D needs B + * D will only be started, if B is successfully started + * E needs B and C + * E will only be started, if both B and C are successfully started + * F wants C and needs B + * F will only be started, if B is successfully started + * F waits until C is started and is started afterwards + +## Getting cinit + +### Development versions +You can get the latest (development) version via git: + + git clone git://git.schottelius.org/cLinux/cinit.git + +Additionally, the following other git ressources are available: + + * [Gitweb](http://git.schottelius.org/?p=cLinux/cinit.git;a=summary). + * [Mirror at github](http://github.com/telmich/cinit) + * [Mirror at gitorious](http://gitorious.org/cinit) + + +### Archives + + * [[cinit-0.3pre19.tar.bz2|archives/cinit-0.3pre19.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre19/)) + [[changes|browse_source/cinit-0.3pre19/doc/changes/0.3pre19]] + * [[cinit-0.3pre18.tar.bz2|archives/cinit-0.3pre18.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre18/)) + [[changes|browse_source/cinit-0.3pre18/doc/changes/0.3pre18]] + * [[cinit-0.3pre17.tar.bz2|archives/cinit-0.3pre17.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre17/)) + [[changes|browse_source/cinit-0.3pre17/doc/changes/0.3pre17]] + * [[cinit-0.3pre16.tar.bz2|archives/cinit-0.3pre16.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre16/)) + [[changes|browse_source/cinit-0.3pre16/doc/changes/0.3pre16]] + * [[cinit-0.3pre15.tar.bz2|archives/cinit-0.3pre15.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre15/)) + [[changes|browse_source/cinit-0.3pre15/doc/changes/0.3pre15]] + * [[cinit-0.3pre14.tar.bz2|archives/cinit-0.3pre14.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre14/)) + [[changes|browse_source/cinit-0.3pre14/CHANGES]] + * [[cinit-0.3pre13.tar.bz2|archives/cinit-0.3pre13.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre13/)) + [[changes|browse_source/cinit-0.3pre13/CHANGES]] + * [[cinit-0.3pre12.tar.bz2|archives/cinit-0.3pre12.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre12/)) + [[changes|browse_source/cinit-0.3pre12/CHANGES]] + * [[cinit-0.3pre11.tar.bz2|archives/cinit-0.3pre11.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre11/)) + [[changes|browse_source/cinit-0.3pre11/CHANGES]] + * [[cinit-0.3pre10.tar.bz2|archives/cinit-0.3pre10.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre10/)) + [[changes|browse_source/cinit-0.3pre10/CHANGES]] + * [[cinit-0.3pre9.tar.bz2|archives/cinit-0.3pre9.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre9/)) + [[changes|browse_source/cinit-0.3pre9/CHANGES]] + * [[cinit-0.3pre8.tar.bz2|archives/cinit-0.3pre8.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre8/)) + [[changes|browse_source/cinit-0.3pre8/CHANGES]] + * [[cinit-0.3pre7.tar.bz2|archives/cinit-0.3pre7.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre7/)) + [[changes|browse_source/cinit-0.3pre7/CHANGES]] + * [[cinit-0.3pre6.tar.bz2|archives/cinit-0.3pre6.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre6/)) + [[changes|browse_source/cinit-0.3pre6/CHANGES]] + * [[cinit-0.3pre5.tar.bz2|archives/cinit-0.3pre5.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre5/)) + [[changes|browse_source/cinit-0.3pre5/CHANGES]] + * [[cinit-0.3pre4.tar.bz2|archives/cinit-0.3pre4.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre4/)) + [[changes|browse_source/cinit-0.3pre4/CHANGES]] + * [[cinit-0.3pre3.tar.bz2|archives/cinit-0.3pre3.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre3/)) + [[changes|browse_source/cinit-0.3pre3/CHANGES]] + * [[cinit-0.3pre2.tar.bz2|archives/cinit-0.3pre2.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre2/)) + [[changes|browse_source/cinit-0.3pre2/CHANGES]] + * [[cinit-0.3pre1.tar.bz2|archives/cinit-0.3pre1.tar.bz2]] + ([browse source](browse_source/cinit-0.3pre1/)) + [[changes|browse_source/cinit-0.3pre1/CHANGES]] + * [[cinit-0.2.1.tar.bz2|archives/cinit-0.2.1.tar.bz2]] + ([browse source](browse_source/cinit-0.2.1/)) + [[changes|browse_source/cinit-0.2.1/CHANGES]] + * [[cinit-0.2.tar.bz2|archives/cinit-0.2.tar.bz2]] + ([browse source](browse_source/cinit-0.2/)) + [[changes|browse_source/cinit-0.2/CHANGES]] + * [[cinit-0.1.tar.bz2|archives/cinit-0.1.tar.bz2]] + ([browse source](browse_source/cinit-0.1/)) + [[changes|browse_source/cinit-0.1/CHANGES]] + * [[cinit-0.0.8.tar.bz2|archives/cinit-0.0.8.tar.bz2]] + ([browse source](browse_source/cinit-0.0.8/)) + [[changes|browse_source/cinit-0.0.8/CHANGES]] + * [[cinit-0.0.7.tar.bz2|archives/cinit-0.0.7.tar.bz2]] + ([browse source](browse_source/cinit-0.0.7/)) + [[changes|browse_source/cinit-0.0.7/CHANGES]] + * [[cinit-0.0.6.tar.bz2|archives/cinit-0.0.6.tar.bz2]] + ([browse source](browse_source/cinit-0.0.6/)) + [[changes|browse_source/cinit-0.0.6/CHANGES]] + * [[cinit-0.0.5.tar.bz2|archives/cinit-0.0.5.tar.bz2]] + ([browse source](browse_source/cinit-0.0.5/)) + [[changes|browse_source/cinit-0.0.5/CHANGES]] + * [[cinit-0.0.4.tar.bz2|archives/cinit-0.0.4.tar.bz2]] + ([browse source](browse_source/cinit-0.0.4/)) + [[changes|browse_source/cinit-0.0.4/CHANGES]] + +## Documentation +The documentation is currently spread all over the ***doc/*** directory +within the tarball and is being cleaned up. Additionally there +are two presentations available: + + * [[2005-10-22: (German) speech at Technophil|software/cinit/speeches/2005-10-22]] + * [[2005-08-06: (German) online speech|software/cinit/speeches/2005-08-06]] + +### Pre-Configuring +If you want to fine tune cinit parameters, add different path names, +change the DESTDIR, ... have a look at conf/*. + + +### Installing cinit +You can install cinit parallel to any other init-system, it won't +kill other init's config nor /sbin/init, if it exists: + + # make all install + +This will create /sbin/cinit. +If /sbin/init does not exist, it will be linked to /sbin/cinit. + +### Configuring cinit +You'll have to configure cinit in /etc/cinit and add services, +before you can use it. + +Please read doc/configuring.cinit for details. +Please read doc/FAO if there are still questions open. + +There are some testing examples below doc/examples/, to be used +as a starting point. + +There are currently no tools to merge your existing init-system +to cinit (like sysvinit-merge, bsd-merge or minit-merge) available, +but they are in the making (see various bugs in ditz). + +### Configuring the OS / Kernel + +After configuring cinit you need to tell your kernel to boot cinit instead +of your current init system. How to do that depends on your system: + + * Linux/LILO and Linux/yaboot (ppc): + * append="init=/sbin/cinit" + * grub1 and grub2: + * kernel init=/sbin/cinit + +## Support + +### IRC +You can join the development ***IRC channel*** +[#cLinux on irc.freenode.org](irc://irc.freenode.org/#cLinux). + +### Mailing list +Bug reports, questions, patches, etc. should be send to the +[cinit mailing list](http://l.schottelius.org/mailman/listinfo/cinit). + +## Related websites + + * [cinit](http://www.nico.schottelius.org/software/cinit/) + * [cinit mailing list](http://l.schottelius.org/mailman/listinfo/cinit) + * BSD init systems (same codebase): + * [FreeBSDs init](http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/init/) + * [NetBSDs init](http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/init/) + * [OpenBSDs init](http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/init/) + * [initng](http://www.initng.org/) + * [minit](http://www.fefe.de/minit/) + * [runit](http://smarden.org/runit/) + * [need/simpleinit](http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/) + * [sys-v-init](ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/) + * [upstart](http://www.netsplit.com/blog/work/canonical/upstart.html) + + +[[!tag unix]] diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/Makefile b/software/cinit/browse_source/cinit-0.3pre19/bin/Makefile new file mode 100644 index 00000000..a7ac9e37 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/Makefile @@ -0,0 +1,37 @@ +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Don't edit Makefiles, use conf/* for configuration. +# + + +# +# Static vars +# +SBIN=$(shell ls cinit-cmd* cinit-helper*) +BIN=$(shell ls cinit-conf*) + +# +# Targets +# +all clean dist distclean: + +install: + install ${SBIN} ${DESTDIR}/sbin + install ${BIN} ${DESTDIR}/bin diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-cmd.reboot b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-cmd.reboot new file mode 100755 index 00000000..f7967d3e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-cmd.reboot @@ -0,0 +1,18 @@ +#!/bin/sh +# Nico Schottelius +# reboot system +# 2005-06-09 + + +usage() +{ + echo "`basename $0`" + echo " Reboot the system:" + exit 1 +} + +if [ $# -ne 0 ]; then + usage +fi + +kill -HUP 1 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-cmd.shutdown b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-cmd.shutdown new file mode 100755 index 00000000..702c8a17 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-cmd.shutdown @@ -0,0 +1,30 @@ +#!/bin/sh +# Nico Schottelius +# shutdown system +# TODO: use ccontrol! +# 2005-05-24 (Last changed: 2005-06-18) + + +usage() +{ + echo "`basename $0` -[ohr]" + echo " Shutdown the system:" + echo " -p|--power-off: Power off" + echo " -h|--halt: Halt" + echo " -r|--reboot: Reboot" + echo " -s|--rescue: Rescue mode" + echo " " + exit 1 +} + +if [ $# -ne 1 ]; then + usage +fi + +case $1 in + -r|--reboot) kill -HUP 1 ;; + -p|--power-off) kill -TERM 1 ;; + -h|--halt) kill -USR1 1 ;; + -s|--rescue) kill -USR2 1 ;; + *) usage ;; +esac diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.config.shell b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.config.shell new file mode 100755 index 00000000..cb08a0c6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.config.shell @@ -0,0 +1,33 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Create a minimal "usable" config +# + +set -e + +. "$(dirname $0)/cinit-conf.read-conf" + +cinit-conf.svc.init +cinit-conf.svc.categories +cinit-conf.svc.mount.proc +cinit-conf.svc.mount.root +cinit-conf.svc.shell +cinit-conf.svc-boot-enable "local-services/shell" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.dump.as.c.header b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.dump.as.c.header new file mode 100755 index 00000000..243a49dd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.dump.as.c.header @@ -0,0 +1,58 @@ +#!/bin/sh +# +# 2005-2009 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# +# +# Dump configuration usable as a c-header file. +# + +################################################################################ +# standard vars stolen from cconf +set -e +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" +set +e + + +CONFS="$(cinit-conf.get-confdir)" + +echo "/* Warning: Autogenerated by $0, do not edit. */" +for conf in "${CONFS}/"*; do + NAME="$(basename ${conf} | tr a-z A-Z)" + value=$(head -n 1 ${conf}) + + # check if numeric: no quotes needed + is_numeric=$(echo $value | awk '/^((0[xX])[0-9a-fA-F]+)|([0-9]+)$/ { print }') + is_string="$(echo $value | grep '^"')" + + # + # Check for quote type + # + if [ ! "$is_numeric" -a ! "$is_string" ]; then + one_char=$(echo -n $value | wc -c) + + if [ "$one_char" -eq 1 ]; then + value="'$value'" + else + # is a string + value="\"$value\"" + fi + fi + echo "#define" "$NAME" "$value" +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.get-confdir b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.get-confdir new file mode 100755 index 00000000..c2a079ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.get-confdir @@ -0,0 +1,49 @@ +#!/bin/sh +# +# 2005-2009 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# + +# cinit: read configuration into variables +# Date: 2005-05-24 (Last Changed: 2005-08-08) +# + +set -x +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +# try environment first +if [ "$CINIT_CONF_CONF_DIR" ]; then + CONFDIR="$CINIT_CONF_CONF_DIR" +elif [ -d "${__abs_mydir}/../conf/" ]; then + CONFDIR="${__abs_mydir}/../conf/" +elif [ -d "${HOME}/.cinit-conf/" ]; then + CONFDIR="${HOME}/.cinit-conf/" +elif [ -d "/etc/cinit/build-conf/" ]; then + CONFDIR="/etc/cinit/build-conf/" +else + echo 'Did not find cinit-conf configuration!' >&2 + echo "Please set the variable CINIT_CONF_CONF_DIR" >&2 + exit 1 +fi + +CONFDIR=$(cd "${CONFDIR}" && pwd -P) + +echo $CONFDIR diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.migrate.archlinux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.migrate.archlinux new file mode 100755 index 00000000..7d52f78c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.migrate.archlinux @@ -0,0 +1,490 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Try to migrate archlinux to cinit +# + +set -e + +################################################################################ +# +# Base layout, same for every OS +# +cinit-conf.svc.init +cinit-conf.svc.categories + +# Arch Linux has a minimal /etc/inittab, nice to migrate! +# Arch only starts /etc/rc.sysinit. Even nicer to migrate! + +# These are covered already by our existing scripts +#/bin/mount -n -t tmpfs none /dev -o mode=0755 +#/bin/mount -n -t proc none /proc +#/bin/mount -n -t sysfs none /sys + +# Copy static device nodes to /dev +# /bin/cp -a /lib/udev/devices/* /dev/ +cinit-conf.svc.udev.copy-static + +# start up our mini logger until syslog takes over +/sbin/minilogd + +# anything more serious than KERN_WARNING goes to the console +# 'verbose' cmdline parameter enables more messages +if /bin/grep -q " verbose" /proc/cmdline; then + /bin/dmesg -n 8 +else + /bin/dmesg -n 3 +fi + +# enable rtc access +/sbin/modprobe rtc-cmos >/dev/null 2>&1 +RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null) +RTC_MAJOR="${RTC_MAJOR%% *}" +if [ -n "$RTC_MAJOR" ]; then + /bin/mknod /dev/rtc0 c $RTC_MAJOR 0 + /bin/ln -s /dev/rtc0 /dev/rtc +fi + +HWCLOCK_PARAMS="--hctosys" +if [ "$HARDWARECLOCK" = "UTC" ]; then + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc" +elif [ "$HARDWARECLOCK" = "localtime" ]; then + HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime" +else + HWCLOCK_PARAMS="" +fi + +# Set clock early to fix some bugs with filesystem checks +# Clock is set again later to match rc.conf +if [ -n "$HWCLOCK_PARAMS" -a -f /etc/localtime ]; then + /sbin/hwclock $HWCLOCK_PARAMS --noadjfile +fi + +echo > /proc/sys/kernel/hotplug + +if [ -x /sbin/udevadm ]; then + stat_busy "Starting UDev Daemon" + /sbin/udevd --daemon + stat_done +else + # Static /dev, our last resort + status "Using static /dev filesystem" true +fi + +# Trigger udev uevents +if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then + stat_busy "Triggering UDev uevents" + /sbin/udevadm trigger + stat_done +fi + +# Load modules from the MODULES array defined in rc.conf +if ! [ "$load_modules" = "off" ]; then + if [ -f /proc/modules ]; then + stat_busy "Loading Modules" + for mod in "${MODULES[@]}"; do + if [ "$mod" = "${mod#!}" ]; then + /sbin/modprobe $mod + fi + done + stat_done + fi + if [ -d /proc/acpi ]; then + stat_busy "Loading standard ACPI modules" + ACPI_MODULES="ac battery button fan processor thermal" + k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')" + j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')" + #add disabled MODULES (!) to blacklist - much requested feature + for m in ${j}; do + [ "$m" != "${m#!}" ] && k="${k} ${m#!}" + done + # add disablemodules= from commandline to blacklist + k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')" + for n in ${ACPI_MODULES}; do + if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then + /sbin/modprobe $n > /dev/null 2>&1 + fi + done + stat_done + fi +fi + +# Wait for udev uevents +if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then + stat_busy "Waiting for UDev uevents to be processed" + udevstart="$(/bin/date +%s%0N)" + /sbin/udevadm settle + stat_done + udevend="$(/bin/date +%s%0N)" + printhl " UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms" +fi + +# bring up the loopback interface +if [ -d /sys/class/net/lo ]; then + stat_busy "Bringing up loopback interface" + /sbin/ifconfig lo 127.0.0.1 up + if [ $? -ne 0 ]; then + stat_fail + else + stat_done + fi +fi + +# If necessary, find md devices and manually assemble RAID arrays +if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then + # udev won't create these md nodes, so we do it ourselves + for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do + path=$(echo $dev | /bin/sed 's|/[^/]*$||') + node=$(echo $dev | /bin/sed "s|^$path/||") + minor=$(echo $node | /bin/sed 's|^[^0-9]*||') + [ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor + done + status "Activating RAID arrays" /sbin/mdadm --assemble --scan +fi + +if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then + if [ -x /sbin/lvm -a -d /sys/block ]; then + # Kernel 2.6.x, LVM2 groups + /sbin/modprobe -q dm-mod 2>/dev/null + stat_busy "Activating LVM2 groups" + /sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null + /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null + if [ $? -ne 0 ]; then + stat_fail + else + stat_done + fi + fi +fi + +# Set up non-root encrypted partition mappings +if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then + /sbin/modprobe -q dm-mod 2>/dev/null + stat_busy "Unlocking encrypted volumes:" + csfailed=0 + CS=/sbin/cryptsetup.static + do_crypt() { + if [ $# -ge 3 ]; then + cname="$1" + csrc="$2" + cpass="$3" + shift 3 + copts="$*" + stat_append "${cname}.." + # For some fun reason, the parameter ordering varies for + # LUKS and non-LUKS devices. Joy. + if [ "${cpass}" = "SWAP" ]; then + # This is DANGEROUS! The only possible safety check + # is to not proceed in case we find a LUKS device + # This may cause dataloss if it is not used carefully + if $CS isLuks $csrc 2>/dev/null; then + false + else + $CS -d /dev/urandom $copts create $cname $csrc >/dev/null + if [ $? -eq 0 ]; then + stat_append "creating swapspace.." + /sbin/mkswap -f -L $cname /dev/mapper/$cname >/dev/null + fi + fi + elif [ "${cpass}" = "ASK" ]; then + printf "\nOpening '${cname}' volume:\n" + + if $CS isLuks $csrc 2>/dev/null; then + $CS $copts luksOpen $csrc $cname < /dev/console + else + $CS $copts create $cname $csrc < /dev/console + fi + elif [ "${cpass:0:1}" != "/" ]; then + if $CS isLuks $csrc 2>/dev/null; then + echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null + else + echo "$cpass" | $CS $copts create $cname $csrc >/dev/null + fi + else + if $CS isLuks $csrc 2>/dev/null; then + $CS -d $cpass $copts luksOpen $csrc $cname >/dev/null + else + $CS -d $cpass $copts create $cname $csrc >/dev/null + fi + fi + if [ $? -ne 0 ]; then + csfailed=1 + stat_append "failed " + else + stat_append "ok " + fi + fi + } + while read line; do + eval do_crypt "$line" + done /dev/null + /sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null + fi + fi +fi + +status "Mounting Root Read-only" /bin/mount -n -o remount,ro / + +FORCEFSCK= +[ -f /forcefsck ] && FORCEFSCK="-- -f" +NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk,noglusterfs" + +fsck_reboot() { + echo "Automatic reboot in progress..." + /bin/umount -a + /bin/mount -n -o remount,ro / + /sbin/reboot -f + exit 0 +} + +if [ -x /sbin/fsck ]; then + stat_busy "Checking Filesystems" + FSCK_OUT=/dev/stdout + FSCK_ERR=/dev/null + /sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >$FSCK_OUT 2>$FSCK_ERR + fsckret=$? + if [ ${fsckret} -gt 1 ]; then + stat_fail + fi + if [ $((${fsckret}&2)) -eq 2 ]; then + echo + echo "********************** REBOOT REQUIRED *********************" + echo "* *" + echo "* The system will be rebooted automatically in 15 seconds. *" + echo "* *" + echo "************************************************************" + echo + /bin/sleep 15 + fsck_reboot + fi + if [ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ]; then + echo + echo "***************** FILESYSTEM CHECK FAILED ****************" + echo "* *" + echo "* Please repair manually and reboot. Note that the root *" + echo "* file system is currently mounted read-only. To remount *" + echo "* it read-write type: mount -n -o remount,rw / *" + echo "* When you exit the maintenance shell the system will *" + echo "* reboot automatically. *" + echo "* *" + echo "************************************************************" + echo + /sbin/sulogin -p + fsck_reboot + fi + stat_done +fi + +stat_busy "Mounting Local Filesystems" +/bin/mount -n -o remount,rw / +/bin/rm -f /etc/mtab* +# make sure / gets written to /etc/mtab +/bin/mount -o remount,rw / +# Write /proc, /sys and /dev to /etc/mtab +if [ -e /proc/mounts ]; then + /bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab +fi +# now mount all the local filesystems +/bin/mount -a -t $NETFS -O no_netdev +stat_done + +status "Activating Swap" /sbin/swapon -a + +stat_busy "Configuring System Clock" +if [ ! -f /var/lib/hwclock/adjtime ]; then + echo "0.0 0 0.0" > /var/lib/hwclock/adjtime +fi +if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then + /bin/rm -f /etc/localtime + /bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime +fi + +if [ -n "$HWCLOCK_PARAMS" ]; then + /sbin/hwclock --adjust #Adjust for system drift + /sbin/hwclock $HWCLOCK_PARAMS +fi +stat_done + +RANDOM_SEED=/var/lib/misc/random-seed +if [ -f $RANDOM_SEED ]; then + stat_busy "Initializing Random Seed" + /bin/cat $RANDOM_SEED > /dev/urandom + stat_done +fi + +stat_busy "Removing Leftover Files" +/bin/rm -f /etc/nologin &>/dev/null +/bin/rm -f /etc/shutdownpid &>/dev/null +/bin/rm -f /var/lock/* &>/dev/null +/bin/rm -rf /tmp/* /tmp/.* &>/dev/null +/bin/rm -f /forcefsck &>/dev/null +(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; ) +: > /var/run/utmp +/bin/chmod 0664 /var/run/utmp +# Keep {x,k,g}dm happy with xorg +/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix +/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix +stat_done + +#status "Updating Shared Library Links" /sbin/ldconfig + +if [ "$HOSTNAME" != "" ]; then + status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME +fi + +# Set the NIS domain name, if necessary +[ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname +if [ "$NISDOMAINNAME" != "" ]; then + status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME +fi + +status "Updating Module Dependencies" /sbin/depmod -A + +# Flush old locale settings +: >/etc/profile.d/locale.sh +/bin/chmod 755 /etc/profile.d/locale.sh +# Set user defined locale +[ -z "$LOCALE" ] && LOCALE="en_US" +stat_busy "Setting Locale: $LOCALE" +echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh +stat_done + +# Adding persistent network/cdrom generated rules +if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then + stat_busy "Adding persistent cdrom udev rules" + /bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules + stat_done +fi +if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then + stat_busy "Adding persistent network udev rules" + /bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules + stat_done +fi + +/bin/dmesg >| /var/log/dmesg.log + +# End of file +# vim: set ts=2 noet: + +# The part before here is migrated, the rest came from the template +exit 0 + +# /etc/event.d/rc-default guesses 2, so we also assume it's 2. +default_runlevel=2 + +################################################################################ +# Sys-v-init on Linux and variants (=upstart) execute rcS before rc2. +# +# Upstart on jaunty is starts /etc/event.d/rc-default, which +# starts /etc/event.d/rcS which starts /etc/init.d/rcS which +# starts /etc/init.d/rc S which starts the shell scripts in +# /etc/rcS.d/ (does not sound very efficient to me). + +# cinit@cinit-desktop:/etc/event.d$ ls -1 /etc/rcS.d/ | sed 's/^/# /' +# README: not migrated: +# S01mountkernfs.sh: sysfs, proc; ignored spufs, /var/run, /lib/init: migrated +cinit-conf.svc.mount.proc +cinit-conf.svc.mount.sys + +# S01readahead: ignored +# S02hostname.sh: migrated +cinit-conf.svc.hostname.linux $(hostname) + +# S06keyboard-setup: migrated +cinit-conf.svc.keymap.linux + +# S07linux-restricted-modules-common: ignored +# S10udev: migrated +cinit-conf.svc.mount.udev +cinit-conf.svc.local-tuning.udev.ubuntu + +# S11mountdevsubfs.sh: migrated! +cinit-conf.svc.mount.dev-shm +cinit-conf.svc.mount.dev-pts + +# S13pcmciautils: ignored +# S15module-init-tools: not migrated: I think modules should be put into services +# S17procps: migrated +cinit-conf.svc.sysctl.linux + +# S20checkroot.sh: migrated for / +cinit-conf.svc.mount.root + +# S22mtab.sh: manually create mtab; migrated (though a little bit hacky) +cinit-conf.svc.mtab-clean.linux + +# S25brltty: ignored: don't have a braille terminal here to test it +# S30checkfs.sh: ignored, not yet supported, have to find other mountpoints first +# S35mountall.sh: ignored: same as S30checkfs.sh +# S36mountall-bootclean.sh: migrated +# /var/run is not a tempdir, do not clean it +cinit-conf.svc.tmp.clean "/tmp" "/var/tmp" "/var/lock" +cinit-conf.svc.tmp.create "/tmp" "/var/tmp" "/var/lock" + +# S37apparmor: ignored +# S37mountoverflowtmp: ignored, that's a boottime bugfix +# S37udev-finish: no need to migrate, if having correct dependencies. +# S39readahead-desktop: ignored, as it seems not to work here +# S39ufw: disabled here by default -> skip +# S40networking +cinit-conf.svc.network.debian + +# S45mountnfs.sh: migrated, only much smaller +cinit-conf.svc.mount.nfs + +# S46mountnfs-bootclean.sh: already done (cinit-conf.svc.tmp.*) +# S49console-setup: migrated +cinit-conf.svc.setup.console.linux + +# S55bootmisc.sh +# S55urandom +# S70screen-cleanup +# S70x11-common + +cat << eof + +Ubuntu upstart migration completed. + +WARNING: + + This is a "lazy" migration: Ubuntu init scripts are migrated + similar, but not identical. Some services have been skipped, because + they are not necessary with cinit or in general. + + Check /etc/cinit before rebooting with cinit! + +KNOWN BUGS: + + S20checkroot.sh: Only / is being fscked, other partitions are ignored. + +HINT: + + Make sure init=/sbin/cinit is set in your bootloader. + +eof diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.migrate.upstart.ubuntu.jaunty b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.migrate.upstart.ubuntu.jaunty new file mode 100755 index 00000000..d13d5007 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.migrate.upstart.ubuntu.jaunty @@ -0,0 +1,174 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Try to migrate upstarts config from ubuntu jaunty to cinit config +# + +set -e + +# /etc/event.d/rc-default guesses 2, so we also assume it's 2. +default_runlevel=2 + +################################################################################ +# +# Base layout, same for every OS +# +cinit-conf.svc.init +cinit-conf.svc.categories +cinit-conf.svc.init.dependencies + +################################################################################ +# Sys-v-init on Linux and variants (=upstart) execute rcS before rc2. +# +# Upstart on jaunty is starts /etc/event.d/rc-default, which +# starts /etc/event.d/rcS which starts /etc/init.d/rcS which +# starts /etc/init.d/rc S which starts the shell scripts in +# /etc/rcS.d/ (does not sound very efficient to me). + +# cinit@cinit-desktop:/etc/event.d$ ls -1 /etc/rcS.d/ | sed 's/^/# /' +# README: not migrated: +# S01mountkernfs.sh: sysfs, proc; ignored spufs, /var/run, /lib/init: migrated +cinit-conf.svc.mount.proc +cinit-conf.svc.mount.sys + +# S01readahead: ignored +# S02hostname.sh: migrated +cinit-conf.svc.hostname.linux $(hostname) + +# S06keyboard-setup: migrated +cinit-conf.svc.keymap.linux + +# S07linux-restricted-modules-common: ignored +# S10udev: migrated +cinit-conf.svc.mount.udev +cinit-conf.svc.local-tuning.udev.ubuntu + +# S11mountdevsubfs.sh: migrated! +cinit-conf.svc.mount.dev-shm +cinit-conf.svc.mount.dev-pts + +# S13pcmciautils: ignored +# S15module-init-tools: not migrated: I think modules should be put into services +# S17procps: migrated +cinit-conf.svc.sysctl.linux + +# S20checkroot.sh: migrated for / +cinit-conf.svc.mount.root + +# S22mtab.sh: manually create mtab; migrated (though a little bit hacky) +cinit-conf.svc.mtab-clean.linux + +# S25brltty: ignored: don't have a braille terminal here to test it +# S30checkfs.sh: ignored, not yet supported, have to find other mountpoints first +# S35mountall.sh: ignored: same as S30checkfs.sh +# S36mountall-bootclean.sh: migrated +# /var/run is not a tempdir, do not clean it +cinit-conf.svc.tmp.clean "/tmp" "/var/tmp" "/var/lock" +cinit-conf.svc.tmp.create "/tmp" "/var/tmp" "/var/lock" + +# S37apparmor: ignored +# S37mountoverflowtmp: ignored, that's a boottime bugfix +# S37udev-finish: no need to migrate, if having correct dependencies. +# S39readahead-desktop: ignored, as it seems not to work here +# S39ufw: disabled here by default -> skip +# S40networking +cinit-conf.svc.network.debian + +# S45mountnfs.sh: migrated, only much smaller +cinit-conf.svc.mount.nfs + +# S46mountnfs-bootclean.sh: already done (cinit-conf.svc.tmp.*) +# S49console-setup: migrated +cinit-conf.svc.setup.console.linux + +# S55bootmisc.sh: skipped +# S55urandom: skipped, should be done later! +# S70screen-cleanup: skipped, unclean, should be done later! +# S70x11-common: also skipped, want to finish this script. + +################################################################################ +# +# /etc/rc2.d/ migration +# +# cinit@cinit-desktop:/etc/rc2.d$ ls -1 +# README +# S01policykit: ignored +# S10acpid: migrated (without module loading) +cinit-conf.svc.acpid +# Skipping the following ones currently +# S10sysklogd +# S11klogd +# S12dbus +# S16ssh +cinit-conf.svc.sshd +# S20apport +# S20hotkey-setup +# S24hal +# S25bluetooth +# S30gdm +# S50NetworkManager +# S50avahi-daemon +# S50cups +# S50pulseaudio +# S50rsync +# S50saned +# S50system-tools-backends +# S70bootlogs.sh +# S70dns-clean +# S70pppd-dns +# S89anacron +# S89atd +# S89cron +# S90binfmt-support +# S98usplash +# S99acpi-support +# S99laptop-mode +# S99ondemand +# S99rc.local +# S99rmnologin +# S99stop-readahead + +################################################################################ +# +# Enable local login with six getties +# +cinit-conf.svc.agetty 6 + +cat << eof + +Ubuntu upstart migration completed. + +WARNING: + + This is a "lazy" migration: Ubuntu init scripts are migrated + similar, but not identical. Some services have been skipped, because + they are not necessary with cinit or in general. + + Check /etc/cinit before rebooting with cinit! + +KNOWN BUGS: + + S20checkroot.sh: Only / is being fscked, other partitions are ignored. + +HINT: + + Make sure init=/sbin/cinit is set in your bootloader. + +eof diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.read-conf b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.read-conf new file mode 100755 index 00000000..0710402f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.read-conf @@ -0,0 +1,58 @@ +#!/bin/sh +# +# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# + +hier="${0%/*}" + +: ${CONFDIR:="$(cinit-conf.get-confdir)"} + +# read general values and overwrite specific ones later +for conf in ${CONFDIR}/*; do + NAME="$(basename $conf | tr a-z A-Z)" + # short version + eval : \${$NAME:=$(head -n1 "${conf}")} + + # long version + #if eval test -z \$$NAME; then + # eval $NAME=\"$(head -n 1 $conf)\" + # eval export $NAME + #fi +# eval echo $NAME = \$$NAME +done + +# comment out: generated automatically now +#: ${DESTDIR="$(head -n1 "${CONFDIR}/destdir")"} +#: ${SERVICE_CATEGORIES="$(head -n1 "${CONFDIR}/service_categories")"} +#: ${GETTYDIR="${SVCDIR}/$(head -n1 "${CONFDIR}/gettydir")"} +#: ${INSTALL_PROG="$(head -n1 "${CONFDIR}/install_prog")"} +#: ${INSTALL_DIRECTORY="$(head -n1 "${CONFDIR}/install_directory")"} +#: ${C_ON="$(head -n1 "${CONFDIR}/c_on")"} +#: ${C_PARAMS="$(head -n1 "${CONFDIR}/c_params")"} +#: ${C_RESPAWN="$(head -n1 "${CONFDIR}/c_respawn")"} + +# overwrite or set: add destdir and put things together +# R_* = real = should be used in scripts +: ${R_CINIT_DIR:="${DESTDIR}/${CINIT_DIR}"} +: ${R_CINITCONF_DIR:="${R_CINIT_DIR}/${CINITCONFDIR}"} +: ${R_SVC_DIR:="${R_CINIT_DIR}/${SVCDIR}"} + +# T_*: theorethic (not real, usable for linking) +: ${T_CINIT_DIR:="${CINIT_DIR}"} +: ${T_CINITCONF_DIR:="${T_CINIT_DIR}/${CINITCONFDIR}"} +: ${T_SVC_DIR:="${T_CINIT_DIR}/${SVCDIR}"} diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-boot-enable b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-boot-enable new file mode 100755 index 00000000..dd0ce633 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-boot-enable @@ -0,0 +1,46 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# +# Enable a service at boottime: add it to init wants list +# + +set -e + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +. "${__abs_mydir}/cinit-conf.read-conf" + + +if [ $# -lt 1 ]; then + echo "${__myname}: services... " + echo "" + echo " I add the services to init, so they will be started at boot." + echo "" + exit 1 +fi + +SVC="init" + +cinit-conf.svc.dependency.add "${SVC}" "wants" "$@" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-create.template b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-create.template new file mode 100755 index 00000000..96898b63 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-create.template @@ -0,0 +1,66 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Create an almost empty service +# + +set -e + +# init variables +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -lt 1 ]; then + echo "`basename $0`: service-name(s)" + echo " I create templates for your services" + exit 1 +fi + +for svc in $@; do + INSTDIR="${R_SVC_DIR}/${svc}" + + if [ -e "$INSTDIR" ]; then + echo "$svc already exists, skipping." + continue + fi + + echo -n "Creating template $svc ..." + "$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}" + + # needs + "$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}/${C_NEEDS}" + + # wants + "$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}/${C_WANTS}" + + # README + cat << eof > "${INSTDIR}/README" +This service was created by $0. + +Please update this README to match the real content. + +Add entries to ${C_NEEDS} for the services this services really needs +(it will not start if one failed to start). + +Add services to ${C_WANTS} for the services this services wants +(it will start if one or more fail)." +eof + + echo "done." +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-delete b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-delete new file mode 100755 index 00000000..77e0b8e5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-delete @@ -0,0 +1,46 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Delete services +# + +set -e + +# init variables +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -lt 1 ]; then + echo "`basename $0`: service-name(s)" + echo " I delete your services" + exit 1 +fi + +for svc in "$@"; do + SERVICE="${R_SVC_DIR}/${svc}" + + if [ ! -e "$SERVICE" ]; then + echo "${svc}: does not exists, cannot remove.." + continue + fi + + echo -n "Removing $svc ..." + rm -rf "${SERVICE}" + echo "done." +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-off b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-off new file mode 100755 index 00000000..8ac78b21 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-off @@ -0,0 +1,43 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Select program to start on service stop +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "${__abs_mydir}/cinit-conf.read-conf" + +if [ $# -ne 2 ]; then + echo "${__myname}: service path-to-executable" + exit 1 +fi + +svc="$1"; shift +executable="$1"; shift + +echo "${svc}:${C_OFF}->${executable}" + +ln -sf "${executable}" "${R_SVC_DIR}/${svc}/${C_OFF}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-on b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-on new file mode 100755 index 00000000..7b8121c7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-on @@ -0,0 +1,39 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Select program to start on service start +# + +set -e + +# init variables +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -ne 2 ]; then + echo "$(basename $0): service path-to-executable" + exit 1 +fi + +svc="$1"; shift +executable="$1"; shift + +echo "${svc}:${C_ON}->${executable}" + +ln -sf "${executable}" "${R_SVC_DIR}/${svc}/${C_ON}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-param.add b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-param.add new file mode 100755 index 00000000..6daa7059 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-param.add @@ -0,0 +1,42 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Select program to start on service start +# + +set -e + +# init variables +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -lt 3 ]; then + echo "$(basename $0): service (${C_ON}|${C_OFF}) params..." + exit 1 +fi + +svc="$1"; shift +type="$1"; shift + +while [ $# -gt 0 ]; do + param="$1"; shift + file="${svc}/${type}${C_PARAMS}" + echo "${file}+=${param}" + echo "${param}" >> "${R_SVC_DIR}/${file}" +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-respawn.off b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-respawn.off new file mode 100755 index 00000000..1809f43e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-respawn.off @@ -0,0 +1,46 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Disable respawing for a service +# + +set -e + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +# init variables +. "${__mydir}/cinit-conf.read-conf" + +if [ $# -lt 1 ]; then + echo "${__myname}: service-name(s)" + echo " Services will lose their respawn mark" + exit 1 +fi + +for svc in "$@"; do + echo -n "${svc}:respaw->off" + rm -f "${R_SVC_DIR}/${svc}/${C_RESPAWN}" + echo "finished." +done + diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-respawn.on b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-respawn.on new file mode 100755 index 00000000..b00adb14 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc-respawn.on @@ -0,0 +1,46 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Enable respawing for a service +# + +set -e + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +# init variables +. "${__mydir}/cinit-conf.read-conf" + +if [ $# -lt 1 ]; then + echo "${__myname}: service-name(s)" + echo " Services will be marked respawning" + exit 1 +fi + +for svc in "$@"; do + echo -n "${svc}:respaw->on" + touch "${R_SVC_DIR}/${svc}/${C_RESPAWN}" + echo "finished." +done + diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.acpid b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.acpid new file mode 100755 index 00000000..e0b178a1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.acpid @@ -0,0 +1,51 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start acpid +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "${__abs_mydir}/cinit-conf.read-conf" + + +if [ $# -ne 0 ]; then + echo "${__myname}: " + echo "" + echo " I start the old acpid" + echo "" + exit 23 +fi + +SVC="local-services/acpid" +BINARY_PATH="$(which acpid)" +NEEDS="mount/root mount/proc" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-f" +cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.agetty b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.agetty new file mode 100755 index 00000000..a168e5bd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.agetty @@ -0,0 +1,71 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Enable agetty (6 times is fine) +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -ne 1 ]; then + echo "${__myname}: " + echo "" + echo " Allow login to your system using agetty" + echo "" + exit 23 +fi +num_getties="$1"; shift + +SVCBASE="local-services/agetty" + +# agetty is called getty within debian/ubuntu -> FIXME: also search for agetty +BINARY_PATH="$(which getty)" +NEEDS="mount/root mount/proc" + +# Create container to hold all the getties +cinit-conf.svc-create.template "${SVCBASE}" + +i=0 +while [ "$i" -lt "$num_getties" ]; do + SVC="${SVCBASE}/$i" + tty="tty${i}" + speed="38400" + + cinit-conf.svc-create.template "${SVC}" + cinit-conf.svc.respawn.on "${SVC}" + cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" + cinit-conf.svc-param.add "${SVC}" "${C_ON}" "${speed}" "${tty}" + + cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + + # add each getty to the "super-getty-service" + cinit-conf.svc.dependency.add "${SVCBASE}" "needs" "${SVC}" + + i=$(($i+1)) +done + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.categories b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.categories new file mode 100755 index 00000000..6db485fc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.categories @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Create default categories +# + +. "$(dirname $0)/cinit-conf.read-conf" + +cinit-conf.svc-create.template $SERVICE_CATEGORIES diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.dependency.add b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.dependency.add new file mode 100755 index 00000000..ea94ae95 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.dependency.add @@ -0,0 +1,65 @@ +#!/bin/sh +# +# 2008-2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# +# cinit: create dependency: service a needs or wants service b +# + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -lt 3 ]; then + echo "`basename $0`: service_A [wants|needs] service_B" + echo "" + echo " Service A needs or wants Service B." + echo " You must specify whether to use wants or needs." + echo "" + exit 23 +fi + +SVC_A="$1"; shift +DEP="$1"; shift + +# adding 'wishes' for x-mas and requires for 'the mass' and 'tv' +case "${DEP}" in + wishes|wants) DEP="$C_WANTS" ;; + needs|requires) DEP="$C_NEEDS" ;; + *) echo "Use \"want\" or \"need\" as type of dependency." +esac + +SVC_A_LDIR="${R_SVC_DIR}/${SVC_A}/${DEP}" +# Try to create dependency directory, if it does not exist +if [ ! -d "${SVC_A_LDIR}" ]; then + echo "${SVC_A}:+${DEP}" + mkdir "${SVC_A_LDIR}" +fi + +# allow multiple dependencies to be added in one run +while [ $# -gt 0 ]; do + SVC_B="$1"; shift + + # remove slashes in the name for destination + SVC_B_LNAME="$(echo "$SVC_B" | sed 's#/#-#g')" + SVC_B_SOURCE="${T_SVC_DIR}/${SVC_B}" + SVC_A_LDEST="${SVC_A_LDIR}/${SVC_B_LNAME}" + + echo "${SVC_A} ${DEP} ${SVC_B} (${SVC_B_LNAME})" + ln -sf "${SVC_B_SOURCE}" "${SVC_A_LDEST}" +done + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.fsck.linux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.fsck.linux new file mode 100755 index 00000000..ab522794 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.fsck.linux @@ -0,0 +1,50 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Filesystemcheck +# Warning: Ubuntu has UUIDs: +# root@ubuntu:~# cat /etc/fstab +# /etc/fstab: static file system information. +# +# Use 'vol_id --uuid' to print the universally unique identifier for a +# device; this may be used with UUID= as a more robust way to name devices +# that works even if disks are added and removed. See fstab(5). +# [...] +# UUID=405998e4-63ba-4190-8a69-488bd81b9d39 / ext3 relatime,errors=remount-ro 0 1 +# +# But the mtab of the running system contains the useful entry +# + +set -e + +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -ne 2 ]; then + echo "$(basename $0): servicename device" + exit 1 +fi + +SVC="$1"; shift +DEVICE="$1"; shift +BINARY_PATH="$(which fsck)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "${DEVICE}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.getty.add b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.getty.add new file mode 100755 index 00000000..ea4e1815 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.getty.add @@ -0,0 +1,75 @@ +#!/bin/sh +# Nico Schottelius +# cinit: create gettys +# Date: 2005-05-24 (Last changed: 2005-08-07) +# + +set -e + +# init variables +. "$(dirname $0)/cinit-conf.read-conf" + +BASEDIR="${R_SVC_DIR}/${GETTYDIR}" +LAST_NUMBER=$(cd "$BASEDIR" && ls | awk '/^((0[xX])[0-9a-fA-F]+)|([0-9]+)$/ { print }' | sort -n | tail -n 1) + +[ ! "$LAST_NUMBER" ] && LAST_NUMBER=0 + +NUMBER=$(echo $LAST_NUMBER + 1 | bc) + +[ ! "$NUMBER" ] && NUMBER=1 + +DDIR=$BASEDIR/$NUMBER + +#echo "Creating getty number $NUMBER in $DDIR ..." + +if [ "$USE_THIS_GETTY" ]; then + GETTYS="$USE_THIS_GETTY" +else + GETTYS=`echo /sbin/*getty*` +fi + +for getty in $GETTYS; do + case $getty in + */fgetty|*/mingetty) + mygetty=$getty + params="/dev/tty${NUMBER}" + ;; + */agetty|*/getty) + mygetty=$getty + params="38400 tty${NUMBER} linux" + ;; + */mgetty) + mygetty=$getty + params="38400 tty${NUMBER}" + ;; + *) + echo "Unknown Getty type $getty" + echo "Please report standard parameters to me." + esac + + [ "$mygetty" ] && break +done + +# check input +if [ ! "$mygetty" ]; then + read -p "Getty to use [$mygetty]: " rgetty +fi +if [ ! "$params" ]; then + read -p "Parameters to pass [$params]: " rparams +fi +if [ ! "$params" -o ! "$mygetty" ]; then + echo "Sorry, either getty or parameters are not supplied." + exit 23 +fi + +echo -n "Creating $mygetty ($params) in $DDIR ... " +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "$DDIR" +ln -s "$mygetty" "$DDIR/$C_ON" + +for param in $params; do + echo $param >> "$DDIR/${C_ON}${C_PARAMS}" +done + +touch "$DDIR/$C_RESPAWN" + +echo "finished." diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.getty.remove b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.getty.remove new file mode 100755 index 00000000..8a9801dd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.getty.remove @@ -0,0 +1,25 @@ +#!/bin/sh +# Nico Schottelius +# cinit: create gettys + +# init variables +. "$(dirname $0)/cinit-conf.read-conf" + +BASEDIR="$DESTDIR/$CINIT_DIR/$GETTY_DIR" +NUMBER=$(cd $BASEDIR && ls | awk '/^((0[xX])[0-9a-fA-F]+)|([0-9]+)$/ { print }' | tail -n 1) + +if [ ! "$NUMBER" ]; then + echo "There is no getty to remove." + exit 1 +fi + +DDIR="$BASEDIR/$NUMBER" + +echo "Removing getty number $NUMBER located in $DDIR ..." +read -p "Are you sure [y/N]? " yes + +if [ "$yes" = "y" ]; then + rm -r "$DDIR" +else + echo "Aborted." +fi diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.hostname.linux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.hostname.linux new file mode 100755 index 00000000..50eb7737 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.hostname.linux @@ -0,0 +1,42 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Setup the hostname +# + +set -e + +. "$(dirname $0)/cinit-conf.read-conf" + +if [ $# -ne 1 ]; then + echo "$(basename $0): hostname" + exit 1 +fi + +HOSTNAME="$1" +: ${HOSTNAME_BIN:=/bin/hostname} + +SVC="network/hostname" + +cinit-conf.svc-create.template "${SVC}" +ln -sf "$HOSTNAME_BIN" "${R_SVC_DIR}/${SVC}/${C_ON}" +echo "$HOSTNAME" > "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}" + +cinit-conf.svc.dependency.add "${SVC}" needs "mount/proc" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.init b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.init new file mode 100755 index 00000000..7d6f4329 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.init @@ -0,0 +1,14 @@ +#!/bin/sh +# Nico Schottelius +# cinit: install needed directories +# Date: - (Last Modified: 2005-08-06) +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_CINITCONF_DIR}" +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}" + +# init must be there. always. +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}/init" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.init.dependencies b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.init.dependencies new file mode 100755 index 00000000..b21ed402 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.init.dependencies @@ -0,0 +1,32 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# cinit: add standard sub-configuration directories to init wants +# + +set -e + +. "$(dirname $0)/cinit-conf.read-conf" + +cinit-conf.svc.dependency.add init wants getty +cinit-conf.svc.dependency.add init wants local-services +cinit-conf.svc.dependency.add init wants local-tuning +cinit-conf.svc.dependency.add init wants mount +cinit-conf.svc.dependency.add init wants network diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.keymap.linux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.keymap.linux new file mode 100755 index 00000000..faa12530 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.keymap.linux @@ -0,0 +1,41 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Setup console keymap +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +SVC="local-tuning/keymap" +BINARY_PATH="$(which setupcon)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-k" + +# FIXME: what are the correct dependencies? +cinit-conf.svc.dependency.add "${SVC}" "needs" "mount/proc" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.linux.debian.ntpdate b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.linux.debian.ntpdate new file mode 100755 index 00000000..a51f945c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.linux.debian.ntpdate @@ -0,0 +1,49 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start ntpdate +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "${__abs_mydir}/cinit-conf.read-conf" + +if [ $# -ne 0 ]; then + echo "${__myname}: (no args)" + exit 1 +fi + +. /etc/default/ntpdate + +if [ -z "$NTPSERVERS" ]; then + echo "No ntp servers found, aborting" + exit 1 +fi + +BINARY_PATH="$(which ntpdate)" +SVC="local-services/ntpdate" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.linux.network.lo b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.linux.network.lo new file mode 100755 index 00000000..0211a8b3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.linux.network.lo @@ -0,0 +1,18 @@ +#!/bin/sh +# Nico Schottelius +# cinit: install service: loopback device +# Date: 2005-08-07 +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +# - mount /proc +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/network/lo" +ln -sf /sbin/ifconfig "${DESTDIR}/${CINIT_DIR}/network/lo/$C_ON" +echo lo > "${DESTDIR}/${CINIT_DIR}/network/lo/${C_ON}${C_PARAMS}" +echo 127.0.0.1/8 >> "${DESTDIR}/${CINIT_DIR}/network/lo/${C_ON}${C_PARAMS}" +echo up >> "${DESTDIR}/${CINIT_DIR}/network/lo/${C_ON}${C_PARAMS}" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.local-tuning.udev.ubuntu b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.local-tuning.udev.ubuntu new file mode 100755 index 00000000..eeb53214 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.local-tuning.udev.ubuntu @@ -0,0 +1,45 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Configure the udev service +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +BINARY_PATH="$(which udevadm)" + +SVC="local-tuning/udev" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "settle" + +# dependencies +cinit-conf.svc.dependency.add "${SVC}" needs "mount/sys" +cinit-conf.svc.dependency.add "${SVC}" needs "mount/udev" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.dev-pts b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.dev-pts new file mode 100755 index 00000000..8d8c0da9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.dev-pts @@ -0,0 +1,54 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Mount /dev/shm, as specified in Ubuntu: +# +# domount tmpfs shmfs /dev/shm tmpfs -onosuid,nodev$SHM_OPT +# +# + + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +SVC="mount/dev-pts" +BINARY_PATH="$(which mount)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" + +# Ubuntu: domount devpts "" /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE +# root@cinit-desktop:/home/cinit/cinit# grep -e TTYGRP -e TTYMODE /etc/default/* +# /etc/default/devpts:TTYGRP=5 +# /etc/default/devpts:TTYMODE=620 +# root@cinit-desktop:/home/cinit/cinit# awk -F: '$3 ~ /^5$/ { print $1 }' /etc/group +# tty + + +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-t" "devpts" "devpts" "/dev/pts" "-onoexec,nosuid,gid=5,mode=620" +cinit-conf.svc.dependency.add "${SVC}" "needs" "mount/udev" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.dev-shm b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.dev-shm new file mode 100755 index 00000000..3466b68f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.dev-shm @@ -0,0 +1,45 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Mount /dev/shm, as specified in Ubuntu: +# +# domount tmpfs shmfs /dev/shm tmpfs -onosuid,nodev$SHM_OPT +# +# + + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +SVC="mount/dev-shm" +BINARY_PATH="$(which mount)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-t" "tmpfs" "-onosuid,nodev" "shmfs" "/dev/shm" +cinit-conf.svc.dependency.add "${SVC}" "needs" "mount/udev" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.getsource b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.getsource new file mode 100755 index 00000000..9ee21f6c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.getsource @@ -0,0 +1,22 @@ +#!/bin/sh +# +# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# + +# FIXME: Skip ^#!, make for generic mounts! +awk '$2 ~ /^\/$/ { print $0 }' < /etc/fstab diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.nfs b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.nfs new file mode 100755 index 00000000..3bea7463 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.nfs @@ -0,0 +1,56 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Mount NFS shares +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -ne 0 ]; then + echo "${__myname}: " + echo "" + echo " Enable NFS mounts" + echo "" + exit 23 +fi + +SVC="mount/nfs" +BINARY_PATH="$(which mount)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-a" "-t" "nfs" + +BINARY_PATH="$(which umount)" +cinit-conf.svc-off "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_OFF}" "-a" "-t" "nfs" + +# NFS mounts always need the network to be up +cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS "network" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.proc b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.proc new file mode 100755 index 00000000..42ae9171 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.proc @@ -0,0 +1,38 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Mount /proc +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +# - mount /proc +SVC="mount/proc" + +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}/${SVC}" +ln -sf /bin/mount "${R_SVC_DIR}/${SVC}/${C_ON}" +echo proc > "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}" +echo -t >> "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}" +echo proc >> "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}" +echo /proc >> "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.root b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.root new file mode 100755 index 00000000..17eff913 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.root @@ -0,0 +1,41 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# mount / read/write (and fsck it before) +# + +set -e + +. "$(dirname $0)/cinit-conf.read-conf" + +# mount root read/write +SVC="mount/root" +BINARY_PATH="$(which mount)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-o" "remount,rw" "/" + +SVC_FSCK="${SVC}/fsck" +BINARY_PATH="$(which fsck)" +DEV="$(mount | awk '$3 ~ /\/$/ { print $1 }')" + +cinit-conf.svc.fsck.linux "${SVC_FSCK}" "${DEV}" +cinit-conf.svc.dependency.add "${SVC}" "needs" "${SVC_FSCK}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.swap b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.swap new file mode 100755 index 00000000..10ca6be3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.swap @@ -0,0 +1,43 @@ +#!/bin/sh +# Nico Schottelius +# cinit: install swap +# Date: 2005-10-15 +# + +. "$(dirname $0)/cinit-conf.read-conf" + +SERVICE=mount/swap + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +BINARY=swapon +BINARY_PATH=$($(dirname $0)/cinit.path-find $BINARY) +if [ $? -ne 0 ]; then + echo "Did not find binary $BINARY." + exit 1 +fi + +HAS_SWAP=$(awk '$3 ~ /swap/ { print $3 }' /etc/fstab) +if [ -z "$HAS_SWAP" ]; then + echo "Seems you have no swap, service not installing" + exit 1 +fi +if [ -d "${DESTDIR}/${CINIT_DIR}/${SERVICE}" ]; then + echo "Service ${SERVICE} already exists." + exit 1 +fi + +echo -n "Installing ${SERVICE} to ${DESTDIR}${CINIT_DIR}/${SERVICE} ..." + +"$INSTALL_PROG" "$INSTALL_DIRECTORY" \ + "${DESTDIR}/${CINIT_DIR}/${SERVICE}" +ln -sf "$BINARY_PATH" "${DESTDIR}/${CINIT_DIR}/${SERVICE}/$C_ON" + +echo "-a" >> "${DESTDIR}/${CINIT_DIR}/${SERVICE}/$C_ON$C_PARAMS" + +echo "finished." + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.sys b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.sys new file mode 100755 index 00000000..fa09253d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.sys @@ -0,0 +1,19 @@ +#!/bin/sh +# Nico Schottelius +# cinit: install service: mount /sys +# Date: 2005-08-07 +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +# - mount /sys +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/mount/sys" +ln -sf /bin/mount "${DESTDIR}/${CINIT_DIR}/mount/sys/$C_ON" +echo sys > "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}" +echo -t >> "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}" +echo sysfs >> "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}" +echo /sys >> "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.sysfs b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.sysfs new file mode 100755 index 00000000..05da04f3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.sysfs @@ -0,0 +1,39 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Mount sysfs +# + + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +DDIR="${R_SVC_DIR}/mount/sys/" + +# - mount /sys +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DDIR}" +ln -sf /bin/mount "${DDIR}${C_ON}" +echo sysfs > "${DDIR}${C_ON}${C_PARAMS}" +echo -t >> "${DDIR}${C_ON}${C_PARAMS}" +echo sysfs >> "${DDIR}${C_ON}${C_PARAMS}" +echo /sys >> "${DDIR}${C_ON}${C_PARAMS}" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.udev b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.udev new file mode 100755 index 00000000..0233336f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mount.udev @@ -0,0 +1,40 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Setup console keymap +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +SVC="mount/udev" +BINARY_PATH="$(which mount)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-t" "tmpfs" "-o" "mode=0755" "udev" "/dev" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mtab-clean.linux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mtab-clean.linux new file mode 100755 index 00000000..ac84719b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.mtab-clean.linux @@ -0,0 +1,49 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Initialise the /etc/mtab file on Linux: +# Ubuntu Jaunty manually creates it, we just ignore it +# and link it to /proc/mounts. +# +# This is probably not the perfect way, as /proc/mounts +# contains more stuff than useful. Maybe we can add a +# "add mount to mtab" dependency to all mount/X/ services, +# that depends on mount/root. +# +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +SVC="local-tuning/cleanup-mtab" +BINARY_PATH="$(which ln)" + +# Is mount/proc needed or is it sane to link to an empty /etc/mtab +# by linking that to a non-existing file? +NEEDS="mount/root mount/proc" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-sf" "/proc/mounts" "/etc/mtab" + +cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.network.debian b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.network.debian new file mode 100755 index 00000000..a8e1ac1a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.network.debian @@ -0,0 +1,58 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start network +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -ne 0 ]; then + echo "${__myname}: " + echo "" + echo " I start all your network devices" + echo "" + exit 23 +fi + +SVC="network/devices" +BINARY_PATH="$(which ifup)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-a" + +# FIXME: Is it really senseful to call ifdown at shutdown? +# Or is that useless anyway? Besides some DHCP_RELEASEs +BINARY_PATH="$(which ifdown)" +cinit-conf.svc-off "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_OFF}" "-a" + +# no known dependencies +#cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.setup.console.linux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.setup.console.linux new file mode 100755 index 00000000..f9a980ee --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.setup.console.linux @@ -0,0 +1,48 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# Setup the Linux console +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -ne 0 ]; then + echo "${__myname}: " + echo "" + echo " Setup Linux console" + echo "" + exit 23 +fi + +SVC="local-tuning/setup-console" +BINARY_PATH="$(which setupcon)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "--force" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.shell b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.shell new file mode 100755 index 00000000..490ee3de --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.shell @@ -0,0 +1,53 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start a shell - the debugging example +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -ne 0 ]; then + echo "${__myname}: " + echo "" + echo " I start a local shell" + echo "" + exit 23 +fi + +SVC="local-services/shell" +BINARY_PATH="$(which sh)" +WANTS="mount/root mount/proc" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-i" +cinit-conf.svc-respawn.on "${SVC}" + +cinit-conf.svc.dependency.add "${SVC}" "wants" $WANTS + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.sshd b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.sshd new file mode 100755 index 00000000..672b02f2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.sshd @@ -0,0 +1,53 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start sshd +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -ne 0 ]; then + echo "${__myname}: " + echo "" + echo " I start the OpenSSH server (not just sshd, Mike)." + echo "" + exit 23 +fi + +SVC="remote-services/sshd" +BINARY_PATH="$(which sshd)" +#NEEDS="mount/root mount/proc" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-D" + +# no known dependencies +#cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.sysctl.linux b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.sysctl.linux new file mode 100755 index 00000000..e4f21a4a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.sysctl.linux @@ -0,0 +1,63 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Load sysctl values +# +# Ubuntu: for file in /etc/sysctl.conf /etc/sysctl.d/*.conf +# + + +. "$(dirname $0)/cinit-conf.read-conf" + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +SVC="local-tuning/sysctl" +BINARY_PATH="$(which sysctl)" + +# main service +cinit-conf.svc-delete "${SVC}" +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-p" "/etc/sysctl.conf" + +# create "sub"-services +for file in /etc/sysctl.d/*.conf; do + bsvc="${file##*/}" + bsvc="${bsvc%*.conf}" + svc="${SVC}/${bsvc}" + + cinit-conf.svc-create.template "${svc}" + cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" + cinit-conf.svc-param.add "${svc}" "${C_ON}" "-p" "${file}" + cinit-conf.svc.dependency.add "${SVC}" "needs" "${svc}" +done + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.tmp.clean b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.tmp.clean new file mode 100755 index 00000000..02e6dd5f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.tmp.clean @@ -0,0 +1,58 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Cleanup temp directories +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -lt 1 ]; then + echo "${__myname}: tmpdirs... " + echo "" + echo " I remove those tempdirs on bootup." + echo "" + exit 23 +fi + +SVC="local-tuning/tmp-clean" +BINARY_PATH="$(which rm)" + +# FIXME: We would need all the related partions to be r/w +# So probably add a warning somewhere or add another argument, +# specifyng other needs +NEEDS="mount/root" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-rf" +cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + +# all other arguments are temp directories +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "$@" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.tmp.create b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.tmp.create new file mode 100755 index 00000000..3a2d6b5f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.tmp.create @@ -0,0 +1,58 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Recreate temp directories +# + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + +set -e +. "$(dirname $0)/cinit-conf.read-conf" + + +if [ $# -lt 1 ]; then + echo "${__myname}: tmpdirs... " + echo "" + echo " I create those tempdirs on bootup." + echo "" + exit 23 +fi + +SVC="local-tuning/tmp/create" +BINARY_PATH="$(which mkdir)" + +# FIXME: We would need all the related partions to be r/w +# So probably add a warning somewhere or add another argument, +# specifyng other needs +NEEDS="mount/root" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" + +# all other arguments are temp directories +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-m" "1777" "$@" + +cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.udev.copy-static b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.udev.copy-static new file mode 100755 index 00000000..3eb7c10e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.svc.udev.copy-static @@ -0,0 +1,40 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Copny static files to /dev +# + +. "$(dirname $0)/cinit-conf.read-conf" + +set -e + +if [ $# -ne 0 ]; then + echo "$(basename $0) (no args)" + exit 1 +fi + +SVC="local-tuning/udev/copy-static" +BINARY_PATH="$(which cp)" + +cinit-conf.svc-create.template "${SVC}" +cinit-conf.svc-on "${SVC}" "${BINARY_PATH}" +cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-a" "/lib/udev/devices/" "/dev/" + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.sys-v-init.get-current-runlevel b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.sys-v-init.get-current-runlevel new file mode 100755 index 00000000..aba723f9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.sys-v-init.get-current-runlevel @@ -0,0 +1,21 @@ +#!/bin/sh +# +# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# + +runlevel | cut -d " " -f2 diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.sys-v-init.migrate-fstab b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.sys-v-init.migrate-fstab new file mode 100755 index 00000000..f3c08736 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-conf.sys-v-init.migrate-fstab @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# + +# read root + +# read swap + +# FIXME: read others: later +echo "Warning: Only configuring / and swap, ignoring other devices for now" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-helper.wait.for.daemon b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-helper.wait.for.daemon new file mode 100755 index 00000000..7f027455 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bin/cinit-helper.wait.for.daemon @@ -0,0 +1,31 @@ +#!/bin/sh +# Nico Schottelius +# wait for daemon to terminate +# the pidfile is our first argument, +# the dameon the second and all others are for the daemon +# 2005-06-12 (Last Changed: 2005-06-17) + +# how long to sleep before rechecking +SLEEP=5 + +if [ $# -lt 2 ]; then + echo "`basename $0` [daemon arguments]" + exit 1 +fi + +PIDFILE=$1; shift +DAEMON=$1; shift + +# remove old pidfile +[ -e "$PIDFILE" ] && rm -f $PIDFILE + +$DAEMON $@ + +PID=$(cat "$PIDFILE") + +ISALIVE=$(ps ax | awk '{ print $1 }' | grep "^$PID\$") + +while [ "$ISALIVE" ]; do + sleep ${SLEEP} + ISALIVE=$(ps ax | awk '{ print $1 }' | grep "^$PID\$") +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/README b/software/cinit/browse_source/cinit-0.3pre19/bugs/README new file mode 100644 index 00000000..6472dbf7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/README @@ -0,0 +1 @@ +This directory is maintained by ditz. diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-0c63a541a2261c7322d6c59a6adb091301020c8d.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-0c63a541a2261c7322d6c59a6adb091301020c8d.yaml new file mode 100644 index 00000000..5a125ca4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-0c63a541a2261c7322d6c59a6adb091301020c8d.yaml @@ -0,0 +1,25 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Create minimal sample configurations for different OS +desc: |- + Similar to what I thought todo in cinit.install.test: + + [ -e /etc/gentoo-release ] && TAR=${TARDIR}/gentoo.tar + [ -e /etc/debian_version ] && TAR=${TARDIR}/debian.tar + [ -e /etc/SuSE-release ] && TAR=${TARDIR}/suse.tar + [ -e /etc/mandrake-release ] && TAR=${TARDIR}/mandrake.tar + [ -e /etc/fedora-release ] && TAR=${TARDIR}/fedora.tar +type: :task +component: portability +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-24 20:14:42.832701 Z +references: [] + +id: 0c63a541a2261c7322d6c59a6adb091301020c8d +log_events: +- - 2009-09-24 20:14:44.120614 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-0d8142c646aa04e8e713fc8f886a44475581c670.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-0d8142c646aa04e8e713fc8f886a44475581c670.yaml new file mode 100644 index 00000000..4c082d64 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-0d8142c646aa04e8e713fc8f886a44475581c670.yaml @@ -0,0 +1,22 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: How to handle OS specific signal handlers +desc: |- + -- cinit ignores the Keyboard request + - Currently there is no support to react on 'ctr+alt+del': + + Maybe allow signal handlers to be passed to something like services? +type: :task +component: core +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:29:28.589652 Z +references: [] + +id: 0d8142c646aa04e8e713fc8f886a44475581c670 +log_events: +- - 2009-09-28 05:29:31.033914 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-120cbf62dbdd9a7a026bcbb7d2863599c7183f70.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-120cbf62dbdd9a7a026bcbb7d2863599c7183f70.yaml new file mode 100644 index 00000000..71b24dea --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-120cbf62dbdd9a7a026bcbb7d2863599c7183f70.yaml @@ -0,0 +1,30 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Add install targets +desc: |- + install: + make install => does not overwrite critical targets + * cinit + * *.kill (see client/*) + * cmd + make force-install => overwrites /sbin/{halt,poweroff,reboot}? + => with script that wraps cmd + make install-template: + * creates categories + make install-miniconf: + * creates categories + * creates one service starting a shell (depending on the OS!) +type: :task +component: build +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:42:21.470333 Z +references: [] + +id: 120cbf62dbdd9a7a026bcbb7d2863599c7183f70 +log_events: +- - 2009-09-28 05:42:22.146097 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-1cc421b885608485f73c9041c5c0af71df76331a.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-1cc421b885608485f73c9041c5c0af71df76331a.yaml new file mode 100644 index 00000000..10759001 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-1cc421b885608485f73c9041c5c0af71df76331a.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Documentate, how to write an init system +desc: So others can redo it. +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:17:05.878201 Z +references: [] + +id: 1cc421b885608485f73c9041c5c0af71df76331a +log_events: +- - 2009-09-29 05:17:06.729534 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-1e83dca921062d97b96830caf24e7898ad4fbbe2.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-1e83dca921062d97b96830caf24e7898ad4fbbe2.yaml new file mode 100644 index 00000000..1a6a63a0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-1e83dca921062d97b96830caf24e7898ad4fbbe2.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: add error handling to cinit.install.binary +desc: Double check the whole installation process +type: :task +component: build +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:32:13.897529 Z +references: [] + +id: 1e83dca921062d97b96830caf24e7898ad4fbbe2 +log_events: +- - 2009-09-28 05:32:14.581391 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-25822475f5d01c35eb9edd8d75c065c83032701b.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-25822475f5d01c35eb9edd8d75c065c83032701b.yaml new file mode 100644 index 00000000..d815cbd6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-25822475f5d01c35eb9edd8d75c065c83032701b.yaml @@ -0,0 +1,23 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: "Documentate: How to cross compile" +desc: |- + conf/os to destination os + conf/cc + conf/ld + conf/cflags + conf/ldflags +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-07 06:31:53.866741 Z +references: [] + +id: 25822475f5d01c35eb9edd8d75c065c83032701b +log_events: +- - 2009-09-07 06:31:54.990478 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-278e5a7b4c338f18f92d5bb1a2789d76d0e11ad9.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-278e5a7b4c338f18f92d5bb1a2789d76d0e11ad9.yaml new file mode 100644 index 00000000..40245817 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-278e5a7b4c338f18f92d5bb1a2789d76d0e11ad9.yaml @@ -0,0 +1,43 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Add reason, why service was not started +desc: |- + -------------------------------------------------------------------------------- + csvc: + 11:09 < folken23> telmich: oder service allready started. + -------------------------------------------------------------------------------- + cinit: + 11:09 < folken23> telmich: zsb. eine grund angabe warum ein dienst nicht gestartet + werden konnte. + 11:09 < folken23> telmich: e.g. file nicht gefunden, service hat nicht 0 + zurueckgeworfen. + ---> errno in execute_sth! +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:36:51.093468 Z +references: [] + +id: 278e5a7b4c338f18f92d5bb1a2789d76d0e11ad9 +log_events: +- - 2009-09-28 05:36:51.957356 Z + - Nico Schottelius + - created + - "" +- - 2009-09-29 05:15:14.622132 Z + - Nico Schottelius + - commented + - |- + And add better status messages: + -> starting + [ started once ] + [ respawning ] + [ failed ] (+ REASON!) + [ needs failed ] (which ones) + + -> stopping + [ stopping ] (for dependencies) + [ stopped ] ? + [ not running ] ? diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-29d45f06044e5329dca7f351a17676e65d4e3b38.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-29d45f06044e5329dca7f351a17676e65d4e3b38.yaml new file mode 100644 index 00000000..7cd1909c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-29d45f06044e5329dca7f351a17676e65d4e3b38.yaml @@ -0,0 +1,22 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: "Bugfix: SIGCHLD not handled carefully" +desc: "" +type: :task +component: core +release: "0.3" +reporter: Nico Schottelius +status: :in_progress +disposition: +creation_time: 2009-09-29 05:34:17.833638 Z +references: [] + +id: 29d45f06044e5329dca7f351a17676e65d4e3b38 +log_events: +- - 2009-09-29 05:34:18.397430 Z + - Nico Schottelius + - created + - "" +- - 2009-09-29 05:35:28.338069 Z + - Nico Schottelius + - changed status from unstarted to in_progress + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-2a4a3675810b44b05ce51c021690fb3f21725e55.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-2a4a3675810b44b05ce51c021690fb3f21725e55.yaml new file mode 100644 index 00000000..cccc3fa5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-2a4a3675810b44b05ce51c021690fb3f21725e55.yaml @@ -0,0 +1,23 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: write sys-v-init-shutdown-wrapper +desc: |- + So people can use their known tools: + * shutdown + * halt + * reboot + * poweroff +type: :task +component: user interface +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 18:35:44.468421 Z +references: [] + +id: 2a4a3675810b44b05ce51c021690fb3f21725e55 +log_events: +- - 2009-09-28 18:35:45.292294 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-2fda514da472aa15fa57d2df06e8d5cc909016d0.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-2fda514da472aa15fa57d2df06e8d5cc909016d0.yaml new file mode 100644 index 00000000..dc0c9622 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-2fda514da472aa15fa57d2df06e8d5cc909016d0.yaml @@ -0,0 +1,22 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Write a small manual +desc: |- + How to + - install + - configure + - boot (different OS) +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 18:37:34.300443 Z +references: [] + +id: 2fda514da472aa15fa57d2df06e8d5cc909016d0 +log_events: +- - 2009-09-28 18:37:35.280232 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-3a620ff450d0c685a5567d25d77230763c835c8e.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-3a620ff450d0c685a5567d25d77230763c835c8e.yaml new file mode 100644 index 00000000..ac9f8430 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-3a620ff450d0c685a5567d25d77230763c835c8e.yaml @@ -0,0 +1,19 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Allow non-parallel bootup +desc: For easier debugging and people who are confused with parallel startup +type: :task +component: core +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-10-24 14:18:44.270577 Z +references: [] + +id: 3a620ff450d0c685a5567d25d77230763c835c8e +log_events: +- - 2009-10-24 14:18:44.990439 Z + - Nico Schottelius + - created + - "" +git_branch: diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-3cc14c82109544e198e5cce002c0d94a66e6f4d7.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-3cc14c82109544e198e5cce002c0d94a66e6f4d7.yaml new file mode 100644 index 00000000..8e7731a6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-3cc14c82109544e198e5cce002c0d94a66e6f4d7.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Export service information +desc: Like pid, path, ... +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:18:47.901610 Z +references: [] + +id: 3cc14c82109544e198e5cce002c0d94a66e6f4d7 +log_events: +- - 2009-09-29 05:18:48.369488 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-40bb0e1478cb8e1fd7ef577b0acf8f7b2f516d6d.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-40bb0e1478cb8e1fd7ef577b0acf8f7b2f516d6d.yaml new file mode 100644 index 00000000..35fdf1ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-40bb0e1478cb8e1fd7ef577b0acf8f7b2f516d6d.yaml @@ -0,0 +1,26 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Add service start/stop +desc: Hack cinit_svc_disable.c +type: :task +component: cinit +release: "0.3" +reporter: Nico Schottelius +status: :in_progress +disposition: +creation_time: 2009-09-29 05:31:38.533662 Z +references: [] + +id: 40bb0e1478cb8e1fd7ef577b0acf8f7b2f516d6d +log_events: +- - 2009-09-29 05:31:39.209477 Z + - Nico Schottelius + - created + - "" +- - 2009-09-29 05:32:40.681588 Z + - Nico Schottelius + - commented + - "svc_stop vs. svc_disable: coded tired?" +- - 2009-09-29 05:33:27.666143 Z + - Nico Schottelius + - changed status from unstarted to in_progress + - on it... diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-4e460e6061fb5d39549b85d42fc33f57de7a1396.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-4e460e6061fb5d39549b85d42fc33f57de7a1396.yaml new file mode 100644 index 00000000..01d7564a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-4e460e6061fb5d39549b85d42fc33f57de7a1396.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Maybe create libcinit? +desc: At least for use in cmd() +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:43:27.689712 Z +references: [] + +id: 4e460e6061fb5d39549b85d42fc33f57de7a1396 +log_events: +- - 2009-09-28 05:43:28.069533 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-5bd7befd45553864b1d2ebc12509e06440a402d0.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-5bd7befd45553864b1d2ebc12509e06440a402d0.yaml new file mode 100644 index 00000000..c033e3d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-5bd7befd45553864b1d2ebc12509e06440a402d0.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Documentate how to migrate from another init system +desc: "" +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 20:00:00.854675 Z +references: [] + +id: 5bd7befd45553864b1d2ebc12509e06440a402d0 +log_events: +- - 2009-09-28 20:00:01.450291 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-5c4769f4f4f23b8a544ae3e20866d8fc2676a7e7.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-5c4769f4f4f23b8a544ae3e20866d8fc2676a7e7.yaml new file mode 100644 index 00000000..5fcbc43d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-5c4769f4f4f23b8a544ae3e20866d8fc2676a7e7.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: add code do implement stopping / restarting service with/without dependency tree +desc: "" +type: :task +component: cinit +release: 0.3.1 +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:33:24.966097 Z +references: [] + +id: 5c4769f4f4f23b8a544ae3e20866d8fc2676a7e7 +log_events: +- - 2009-09-28 05:33:25.929966 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-638fcf34a8d68c88ed48313ffd3b8a9ecb2fbbd4.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-638fcf34a8d68c88ed48313ffd3b8a9ecb2fbbd4.yaml new file mode 100644 index 00000000..92db9edc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-638fcf34a8d68c88ed48313ffd3b8a9ecb2fbbd4.yaml @@ -0,0 +1,19 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Export cinit.mkheader to cconf +desc: To buid up the complete build suite. +type: :task +component: build +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-11-18 16:03:16.116135 Z +references: [] + +id: 638fcf34a8d68c88ed48313ffd3b8a9ecb2fbbd4 +log_events: +- - 2009-11-18 16:03:16.685812 Z + - Nico Schottelius + - created + - "" +git_branch: diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-8391cdbcb30d007bfb692504d9469a93f7c15b97.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-8391cdbcb30d007bfb692504d9469a93f7c15b97.yaml new file mode 100644 index 00000000..a4da0c19 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-8391cdbcb30d007bfb692504d9469a93f7c15b97.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Mase sure cinit runs on POSIX +desc: Double check that there are no linux deps in it anymore (from cinit-0.2) +type: :task +component: portability +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:16:19.961614 Z +references: [] + +id: 8391cdbcb30d007bfb692504d9469a93f7c15b97 +log_events: +- - 2009-09-29 05:16:20.858087 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-85687a7f79046db51429db38e7b1da5234a3675e.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-85687a7f79046db51429db38e7b1da5234a3675e.yaml new file mode 100644 index 00000000..f87e898a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-85687a7f79046db51429db38e7b1da5234a3675e.yaml @@ -0,0 +1,25 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: write examples for profiles +desc: |- + o switch ssh known_hosts based on profile + o different proxy settings in browsers + - environment + - mozilla settings + o start samba (for lan) + o start samba (for company lan) + o use nis and nfs (company profile) +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:19:26.941625 Z +references: [] + +id: 85687a7f79046db51429db38e7b1da5234a3675e +log_events: +- - 2009-09-29 05:19:27.345506 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-863a9d56ed460fb45e91d2c555d57133d2286f72.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-863a9d56ed460fb45e91d2c555d57133d2286f72.yaml new file mode 100644 index 00000000..9716ac2e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-863a9d56ed460fb45e91d2c555d57133d2286f72.yaml @@ -0,0 +1,24 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Add speedup part in documentation +desc: |- + - cinit will start a little bit faster if you omit non needed + 'wants' and 'needs' dirs as they need to be scanned if they + do not exist + - Dependencies beginning with a '.' (dot) are ignored. + So you can temporarily disable a dependency moving it to + want/.name +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:30:01.562097 Z +references: [] + +id: 863a9d56ed460fb45e91d2c555d57133d2286f72 +log_events: +- - 2009-09-28 05:30:02.433805 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-8d5e1aee59a52ab1b3b0b02b02f07823d4f4b8d8.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-8d5e1aee59a52ab1b3b0b02b02f07823d4f4b8d8.yaml new file mode 100644 index 00000000..50eaa305 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-8d5e1aee59a52ab1b3b0b02b02f07823d4f4b8d8.yaml @@ -0,0 +1,28 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Create cinit-conf framework or libexec +desc: |- + Maybe include + - cinit_service_modify(name|path) + - cinit_service_create() - interactive + - cinit_service_delete(name|path) - interactive + * has to take care about needs / wants! + - cinit_magic_configuration_generation() + * tries to build a completly fresh configuration, by analysing your system + + Non interactive tools + - cinit_svc_del +type: :task +component: user interface +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:28:48.049604 Z +references: [] + +id: 8d5e1aee59a52ab1b3b0b02b02f07823d4f4b8d8 +log_events: +- - 2009-09-29 05:28:48.665510 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-b5428a5e8b064827fac8f1bc905cd5b304961f77.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-b5428a5e8b064827fac8f1bc905cd5b304961f77.yaml new file mode 100644 index 00000000..5666d6be --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-b5428a5e8b064827fac8f1bc905cd5b304961f77.yaml @@ -0,0 +1,22 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Add dumpstate function +desc: |- + It should write a cconfig tree similar to the configuration + Additionally it should contain a "state" field + + This feature is the base for hot-upgrading cinit. +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-10-05 20:57:25.373348 Z +references: [] + +id: b5428a5e8b064827fac8f1bc905cd5b304961f77 +log_events: +- - 2009-10-05 20:57:25.943152 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-bb27c9b51f82dd54eba8baa40aa5e8bba326ea01.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-bb27c9b51f82dd54eba8baa40aa5e8bba326ea01.yaml new file mode 100644 index 00000000..f90ec206 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-bb27c9b51f82dd54eba8baa40aa5e8bba326ea01.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: export profile information +desc: Possible via $CINIT_PROFILE +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:19:54.965525 Z +references: [] + +id: bb27c9b51f82dd54eba8baa40aa5e8bba326ea01 +log_events: +- - 2009-09-29 05:19:55.929526 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-c8d020845511594b4b90bb38a2a839ef6ce4c9c8.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-c8d020845511594b4b90bb38a2a839ef6ce4c9c8.yaml new file mode 100644 index 00000000..886b3337 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-c8d020845511594b4b90bb38a2a839ef6ce4c9c8.yaml @@ -0,0 +1,20 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Cleanup environment before starting child +desc: |- + Close fds, free mem, ... + Chcek what's necessary, what's senseful, ... +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:41:22.857702 Z +references: [] + +id: c8d020845511594b4b90bb38a2a839ef6ce4c9c8 +log_events: +- - 2009-09-28 05:41:23.909476 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-d3732fffad054c5a1f781f28a60015346ad28dd6.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-d3732fffad054c5a1f781f28a60015346ad28dd6.yaml new file mode 100644 index 00000000..fed5b461 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-d3732fffad054c5a1f781f28a60015346ad28dd6.yaml @@ -0,0 +1,20 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: write cinit-conf.check +desc: |- + * report broken links in needs/wants + * report circular dependencies +type: :task +component: user interface +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 18:36:27.892997 Z +references: [] + +id: d3732fffad054c5a1f781f28a60015346ad28dd6 +log_events: +- - 2009-09-28 18:36:28.504859 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-d7a7970bd20e1dc0b04f314fee5f39ba90d3d904.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-d7a7970bd20e1dc0b04f314fee5f39ba90d3d904.yaml new file mode 100644 index 00000000..8b379025 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-d7a7970bd20e1dc0b04f314fee5f39ba90d3d904.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Cleanup contrib+tools +desc: Tools may be old or not even compiling. Cleanup! +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:22:54.298139 Z +references: [] + +id: d7a7970bd20e1dc0b04f314fee5f39ba90d3d904 +log_events: +- - 2009-09-29 05:22:55.166003 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-dbc5e27c03e3dd22add144409f6dfe8b81d2c8d1.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-dbc5e27c03e3dd22add144409f6dfe8b81d2c8d1.yaml new file mode 100644 index 00000000..27f2d088 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-dbc5e27c03e3dd22add144409f6dfe8b81d2c8d1.yaml @@ -0,0 +1,22 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Documentate sleeping behaviour (when respawing processes) +desc: |- + - cinit will sleep after respawing if ... + + a) the service did not terminate normally (!WIFEXITED(status)) + b) the service did return a non-zero exit status +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:27:32.721481 Z +references: [] + +id: dbc5e27c03e3dd22add144409f6dfe8b81d2c8d1 +log_events: +- - 2009-09-28 05:27:33.821345 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-e40b9f0761d0a1e0ca47cc8e0e52d4ec16f51669.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-e40b9f0761d0a1e0ca47cc8e0e52d4ec16f51669.yaml new file mode 100644 index 00000000..08026edf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-e40b9f0761d0a1e0ca47cc8e0e52d4ec16f51669.yaml @@ -0,0 +1,20 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: define service status in one document, so repeatition stops +desc: |- + maybe use doxygen? + Chose focus: user | developer +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 05:31:11.886061 Z +references: [] + +id: e40b9f0761d0a1e0ca47cc8e0e52d4ec16f51669 +log_events: +- - 2009-09-28 05:31:12.802016 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-e435cb93810ea790f795fedc2e9afc6475c9c0a8.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-e435cb93810ea790f795fedc2e9afc6475c9c0a8.yaml new file mode 100644 index 00000000..13713f55 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-e435cb93810ea790f795fedc2e9afc6475c9c0a8.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: "FAQ: what happens when a service does not terminate...." +desc: write faq! +type: :task +component: documentation +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-28 20:11:41.130314 Z +references: [] + +id: e435cb93810ea790f795fedc2e9afc6475c9c0a8 +log_events: +- - 2009-09-28 20:11:41.862145 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-f10682d63b1059f876c6cdde2323a596dba89d3c.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-f10682d63b1059f876c6cdde2323a596dba89d3c.yaml new file mode 100644 index 00000000..0685c6f4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-f10682d63b1059f876c6cdde2323a596dba89d3c.yaml @@ -0,0 +1,51 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Test new build sytem +desc: |- + Migrate conf/ to general conf/-buildsystem (write documentation for it). + + gpm2 may be an example for this! + + conf/targets: + targets to make available in Makefile and their dependencies + + abstract the build-process somehow, so one can create build-targets? + + c-programs/ (includes cc / ld) + cinit (link to conf/object_listings cinit?) + conf/object_listings + lists of dependencies: + conf/object_listings/cinit contains all objects needed for cinit + + conf/programs/ + like cc, ld, install, ... + + conf/built-options/ + like --... in ./configure + + conf/install/ + + options/ + destdir (prefixed before everything) + prefix (standard prefix) + bin (relative to prefix, if not beginning with a /) + sbin (relative to prefix, if not beginning with a /) + lib (relative to prefix, if not beginning with a /) + targets/ + cinit/ + built-target (link to conf/targets/cinit) + destination (relative to +type: :task +component: build +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:21:55.313650 Z +references: [] + +id: f10682d63b1059f876c6cdde2323a596dba89d3c +log_events: +- - 2009-09-29 05:21:55.845402 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-fa88d3f9dca2df7ccaf8fb9ce2daab3e9255dae3.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-fa88d3f9dca2df7ccaf8fb9ce2daab3e9255dae3.yaml new file mode 100644 index 00000000..23949d0a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-fa88d3f9dca2df7ccaf8fb9ce2daab3e9255dae3.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: Check shutdown code +desc: To verify the right way +type: :task +component: core +release: "0.3" +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:34:46.305951 Z +references: [] + +id: fa88d3f9dca2df7ccaf8fb9ce2daab3e9255dae3 +log_events: +- - 2009-09-29 05:34:46.774065 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-fea40277e32b0bd747d7f47a68d41009fc046fd9.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-fea40277e32b0bd747d7f47a68d41009fc046fd9.yaml new file mode 100644 index 00000000..57911dc1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/issue-fea40277e32b0bd747d7f47a68d41009fc046fd9.yaml @@ -0,0 +1,18 @@ +--- !ditz.rubyforge.org,2008-03-06/issue +title: add logging support for services +desc: Similar to DJB tools? multilog? +type: :task +component: cinit +release: future +reporter: Nico Schottelius +status: :unstarted +disposition: +creation_time: 2009-09-29 05:18:00.717667 Z +references: [] + +id: fea40277e32b0bd747d7f47a68d41009fc046fd9 +log_events: +- - 2009-09-29 05:18:01.146029 Z + - Nico Schottelius + - created + - "" diff --git a/software/cinit/browse_source/cinit-0.3pre19/bugs/project.yaml b/software/cinit/browse_source/cinit-0.3pre19/bugs/project.yaml new file mode 100644 index 00000000..490b5cff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/bugs/project.yaml @@ -0,0 +1,44 @@ +--- !ditz.rubyforge.org,2008-03-06/project +name: cinit +version: "0.5" +components: +- !ditz.rubyforge.org,2008-03-06/component + name: cinit +- !ditz.rubyforge.org,2008-03-06/component + name: core +- !ditz.rubyforge.org,2008-03-06/component + name: user interface +- !ditz.rubyforge.org,2008-03-06/component + name: portability +- !ditz.rubyforge.org,2008-03-06/component + name: documentation +- !ditz.rubyforge.org,2008-03-06/component + name: build +releases: +- !ditz.rubyforge.org,2008-03-06/release + name: "0.3" + status: :unreleased + release_time: + log_events: + - - 2009-09-07 06:28:02.974644 Z + - Nico Schottelius + - created + - The first cleaned up version +- !ditz.rubyforge.org,2008-03-06/release + name: future + status: :unreleased + release_time: + log_events: + - - 2009-09-07 06:29:14.264777 Z + - Nico Schottelius + - created + - All things to be fixed in the future. +- !ditz.rubyforge.org,2008-03-06/release + name: 0.3.1 + status: :unreleased + release_time: + log_events: + - - 2009-09-28 05:32:55.870041 Z + - Nico Schottelius + - created + - Bugfix of 0.3 diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/.README b/software/cinit/browse_source/cinit-0.3pre19/conf/.README new file mode 100644 index 00000000..c4d984c7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/.README @@ -0,0 +1,7 @@ +This is an example for a cinit and cinit-conf configuration. + +The first line of a file contains the configuration value, +the rest of the file may contain a description. + +The conf/ directory is shared by cinit and cinit-conf and may contain files that +are only relevant for one of the two projects. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_confdir b/software/cinit/browse_source/cinit-0.3pre19/conf/c_confdir new file mode 100644 index 00000000..091e6192 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_confdir @@ -0,0 +1,3 @@ +conf + +The directory below cinit_dir for cinit configuration. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_delay b/software/cinit/browse_source/cinit-0.3pre19/conf/c_delay new file mode 100644 index 00000000..dc30f147 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_delay @@ -0,0 +1,4 @@ +delay + +Name of the file which contains the delay between sending SIGKILL after +SIGTERM for respawning processes. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_desaster b/software/cinit/browse_source/cinit-0.3pre19/conf/c_desaster new file mode 100644 index 00000000..153a63cb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_desaster @@ -0,0 +1,5 @@ +/bin/sh + +The path to a program, that we execute if nothing +else helps. We'll execute it, if the standard panic +action fails (as specified in cinit_dir/c_confdir/panic). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_env b/software/cinit/browse_source/cinit-0.3pre19/conf/c_env new file mode 100644 index 00000000..ec4d643b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_env @@ -0,0 +1,9 @@ +.env + +The extension to c_on and c_off, which will contain the environment \n seperated. + +For instance: + +CLIENT_IP=192.168.23.42 +ACCEPT_CONN=32 + diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_init b/software/cinit/browse_source/cinit-0.3pre19/conf/c_init new file mode 100644 index 00000000..22a77d8e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_init @@ -0,0 +1,3 @@ +init + +The name of the init service. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_last b/software/cinit/browse_source/cinit-0.3pre19/conf/c_last new file mode 100644 index 00000000..8debf155 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_last @@ -0,0 +1,7 @@ +last + +Name of the file below cinit_dir/c_confdir/ to execute right before +reboot/halt/poweroff. + +This maybe a shellscript with the OS-specific umount procedure (like umount -a), +see doc/user/configuring.cinit for more details. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_needs b/software/cinit/browse_source/cinit-0.3pre19/conf/c_needs new file mode 100644 index 00000000..eb715d7d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_needs @@ -0,0 +1,3 @@ +needs + +Name of the service sub-directory containing the needed services. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_off b/software/cinit/browse_source/cinit-0.3pre19/conf/c_off new file mode 100644 index 00000000..57e63cea --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_off @@ -0,0 +1,3 @@ +off + +Name of the file we start, when stopping the service. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_on b/software/cinit/browse_source/cinit-0.3pre19/conf/c_on new file mode 100644 index 00000000..8eadc0a5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_on @@ -0,0 +1,3 @@ +on + +Name of the file we start, when starting the service. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_panic b/software/cinit/browse_source/cinit-0.3pre19/conf/c_panic new file mode 100644 index 00000000..7fdb77b3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_panic @@ -0,0 +1,5 @@ +panic + +Name of the file below cinit_dir/c_confdir/ to execute on panic. +This name .params (normally panic.params) will be passed as parameters/ +argumunts to panic. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_params b/software/cinit/browse_source/cinit-0.3pre19/conf/c_params new file mode 100644 index 00000000..d86d37cb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_params @@ -0,0 +1,3 @@ +.params + +The extension to c_on and c_off, which will contain the parameters \n seperated. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_respawn b/software/cinit/browse_source/cinit-0.3pre19/conf/c_respawn new file mode 100644 index 00000000..cc85fbea --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_respawn @@ -0,0 +1,3 @@ +respawn + +If this file exists in a service directory, cinit will respawn the service. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_sock b/software/cinit/browse_source/cinit-0.3pre19/conf/c_sock new file mode 100644 index 00000000..46a50941 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_sock @@ -0,0 +1,4 @@ +coala + +The name of the socket cinit will use (currently: below tmpdir, +see doc/ipc.thoughts). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmp b/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmp new file mode 100644 index 00000000..48e98e42 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmp @@ -0,0 +1,3 @@ +tmp + +The name of the temporary directory, where we'll mount tmpfs to create the socket diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmpfs b/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmpfs new file mode 100644 index 00000000..ba29caef --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmpfs @@ -0,0 +1,4 @@ +tmpfs + +The name of the filesystem to use to mount a memory filesystem. +On Linux this is "tmpfs". diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmpmount b/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmpmount new file mode 100644 index 00000000..3469fe57 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_tmpmount @@ -0,0 +1,4 @@ +tmpfs + +The name of the mount target, we'll mount with c_tmpfs on the c_tmp directory. +On Linux this can be anything, but we will use the default "tmpfs". diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/c_wants b/software/cinit/browse_source/cinit-0.3pre19/conf/c_wants new file mode 100644 index 00000000..20fe3184 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/c_wants @@ -0,0 +1,3 @@ +wants + +Name of the service sub-directory containing the wanted services. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/cc b/software/cinit/browse_source/cinit-0.3pre19/conf/cc new file mode 100644 index 00000000..b168ae6c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/cc @@ -0,0 +1,3 @@ +gcc + +The c-compiler to use. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/cflags b/software/cinit/browse_source/cinit-0.3pre19/conf/cflags new file mode 100644 index 00000000..f205afb8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/cflags @@ -0,0 +1,6 @@ +-pipe -W -Wall -Werror -Iinclude -g -D_XOPEN_SOURCE=600 -D_USE_POSIX + +Standard flags to pass to (g)cc. + +-D_XOPEN_SOURCE=600 must be used on glibc to select the right standard. +-D_USE_POSIX is needed for sigemptyset on glibc diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/cinit_dir b/software/cinit/browse_source/cinit-0.3pre19/conf/cinit_dir new file mode 100644 index 00000000..06e7d1ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/cinit_dir @@ -0,0 +1,3 @@ +/etc/cinit + +This is where all configuration for cinit will be stored. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/cinitconfdir b/software/cinit/browse_source/cinit-0.3pre19/conf/cinitconfdir new file mode 100644 index 00000000..9dc3b52b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/cinitconfdir @@ -0,0 +1,3 @@ +conf + +General cinit-configuration (below cinitdir) diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/destdir b/software/cinit/browse_source/cinit-0.3pre19/conf/destdir new file mode 100644 index 00000000..3326ace6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/destdir @@ -0,0 +1,6 @@ + + +The destination to install to. This is not used when running cinit, +but only for installing it. Normally the first line is blank. + +cinit-conf uses this file for installing the configuration. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/gettydir b/software/cinit/browse_source/cinit-0.3pre19/conf/gettydir new file mode 100644 index 00000000..2cb4da05 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/gettydir @@ -0,0 +1,4 @@ +getty + +This is the subdirectry in which the scripts will create the gettys, +if you are using 'install-conf'. It's not used be cinit internally. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/install_directory b/software/cinit/browse_source/cinit-0.3pre19/conf/install_directory new file mode 100644 index 00000000..80cab694 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/install_directory @@ -0,0 +1,3 @@ +-d + +Parameter to pass to install_prog to create directories. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/install_prog b/software/cinit/browse_source/cinit-0.3pre19/conf/install_prog new file mode 100644 index 00000000..2f21943a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/install_prog @@ -0,0 +1,4 @@ +/usr/bin/install + +Program we use to install. install_directory contains parameter +to create directory. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/ipc_method b/software/cinit/browse_source/cinit-0.3pre19/conf/ipc_method new file mode 100644 index 00000000..fc75e273 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/ipc_method @@ -0,0 +1,5 @@ +msgq + +The type of IPC (inter process communication) to use. +Valid values can be optained by issuing `ls src/ipc/`. + diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/ld b/software/cinit/browse_source/cinit-0.3pre19/conf/ld new file mode 100644 index 00000000..b60e4836 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/ld @@ -0,0 +1,3 @@ +gcc + +Comment missing. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/ldflags b/software/cinit/browse_source/cinit-0.3pre19/conf/ldflags new file mode 100644 index 00000000..fc214daf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/ldflags @@ -0,0 +1,3 @@ + + +No flags specified normally. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/max_delay b/software/cinit/browse_source/cinit-0.3pre19/conf/max_delay new file mode 100644 index 00000000..30725bf8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/max_delay @@ -0,0 +1,4 @@ +30 + +Maximum number of seconds to sleep between retrying to start it +(respawn only). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/max_deps b/software/cinit/browse_source/cinit-0.3pre19/conf/max_deps new file mode 100644 index 00000000..13db68e9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/max_deps @@ -0,0 +1,4 @@ +32 + +Maximum number of direct dependencies (in each wants and needs, +that way doubling this number) a service may have. The default is 32. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_pathname b/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_pathname new file mode 100644 index 00000000..1bef0b6b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_pathname @@ -0,0 +1,4 @@ +/bin/sh + +Used to generate an unique identifier for the message queue. +See ftok(3). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_to_clients b/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_to_clients new file mode 100644 index 00000000..dd15808a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_to_clients @@ -0,0 +1,4 @@ +o + +This is use in ftok to generate a key_t for the message queue use to write +to the clients. See ftok(3). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_to_server b/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_to_server new file mode 100644 index 00000000..f87ae3f4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/msgq_to_server @@ -0,0 +1,4 @@ +i + +This is use in ftok to generate a key_t for the message queue use to write +to the server. See ftok(3). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/os b/software/cinit/browse_source/cinit-0.3pre19/conf/os new file mode 100644 index 00000000..ddbf8f9c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/os @@ -0,0 +1,14 @@ +linux + +Select the operating system compiling for. + +Current possibilities: + + - linux + + +Currently Planned possibilities: + + - freebsd + - openbsd + - netbsd diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/p_asciidoc b/software/cinit/browse_source/cinit-0.3pre19/conf/p_asciidoc new file mode 100644 index 00000000..52485c86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/p_asciidoc @@ -0,0 +1,6 @@ +asciidoc + +The binary on your system (with or without path) which does what I expect +asciidoc todo. + +Default: asciidoc diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/p_docbooktoman b/software/cinit/browse_source/cinit-0.3pre19/conf/p_docbooktoman new file mode 100644 index 00000000..d62c9015 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/p_docbooktoman @@ -0,0 +1,6 @@ +docbook2x-man + +The binary on your system (with or without path) which converts +docbook to manpages. + +Default: docbook2x-man diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/p_docbooktotexi b/software/cinit/browse_source/cinit-0.3pre19/conf/p_docbooktotexi new file mode 100644 index 00000000..278f6805 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/p_docbooktotexi @@ -0,0 +1,6 @@ +docbook2x-texi + +The binary on your system (with or without path) which converts +docbook to texinfo. + +Default: docbook2x-texi diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/prefix b/software/cinit/browse_source/cinit-0.3pre19/conf/prefix new file mode 100644 index 00000000..6b90469f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/prefix @@ -0,0 +1,5 @@ + + +Where to install cinit. Normally this will be /, but you can put it anywhere. +The subdirectory 'sbin' under this prefix must be readable by the kernel. +This is normally either empty or "/". diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/profile b/software/cinit/browse_source/cinit-0.3pre19/conf/profile new file mode 100644 index 00000000..b9104bf6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/profile @@ -0,0 +1,9 @@ +cprofile: + +The argument should be passed to cinit to recognize that +a profile will follow. "cprofile:" is the standard, as +the Linux kernel eats everything in the form 'var=parm'. +The old (pre cinit-0.1) option "cprofile=" should therefore +NOT be used. + +Under Linux you tell it the bootloader like grub or LILO. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/service_categories b/software/cinit/browse_source/cinit-0.3pre19/conf/service_categories new file mode 100644 index 00000000..92a5a683 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/service_categories @@ -0,0 +1,3 @@ +local-tuning local-services mount network remote-services + +List of directories normally created below /etc/cinit/svc/ as 'pseudo-services'. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_before_kill b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_before_kill new file mode 100644 index 00000000..2671f22d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_before_kill @@ -0,0 +1,7 @@ +sleep_before_kill + +The file that specifies how long to sleep after sending SIGTERM, before sending +SIGKILL to every process. If this file is non-existing the builtin value from +'sleep_kill'. + +The file should be located below conf/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_kill b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_kill new file mode 100644 index 00000000..b419241a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_kill @@ -0,0 +1,8 @@ +2 + +Seconds to sleep after sending SIGTERM, before sending SIGKILL to every +process. 5 is a good working value, but makes me tired. Testing with +2 currently. + +Note: This does NOT affect terminating services, they are shutdown by +their own 'off' functions. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_kill_svc b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_kill_svc new file mode 100644 index 00000000..e399ac10 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_kill_svc @@ -0,0 +1,5 @@ +1 + +Seconds to sleep after sending SIGTERM, before sending SIGKILL to +the service we are shutting down. This is only used for +bringing down respawning processes. Default: 1. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_rerun b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_rerun new file mode 100644 index 00000000..703339f9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_rerun @@ -0,0 +1,4 @@ +1 + +How many seconds to sleep before rechecking if the service was executed. +Used by run_svc(). diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_svc b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_svc new file mode 100644 index 00000000..e20aed6a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sleep_svc @@ -0,0 +1,3 @@ +5 + +How many seconds to sleep before respawning a failed process. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sock_queue b/software/cinit/browse_source/cinit-0.3pre19/conf/sock_queue new file mode 100644 index 00000000..4917a1f8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sock_queue @@ -0,0 +1,4 @@ +32 + +Maximum process waiting in the socket queue. The default is much +more than enough. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/strip b/software/cinit/browse_source/cinit-0.3pre19/conf/strip new file mode 100644 index 00000000..08736418 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/strip @@ -0,0 +1,3 @@ +strip -R .comment -R .note + +Strip out unecessary parts of the binaries. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/sulogin b/software/cinit/browse_source/cinit-0.3pre19/conf/sulogin new file mode 100644 index 00000000..24859afc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/sulogin @@ -0,0 +1,6 @@ +/sbin/sulogin + +The path to sulogin. We'll execute it, if the standard panic +action fails (as specified in cinit_dir/c_confdir/panic). + +If you need arguments, you tave to hack serv/panic.c diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/svcdir b/software/cinit/browse_source/cinit-0.3pre19/conf/svcdir new file mode 100644 index 00000000..087a3848 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/svcdir @@ -0,0 +1,3 @@ +svc + +Directory below /etc/cinit that contains the services. diff --git a/software/cinit/browse_source/cinit-0.3pre19/conf/version b/software/cinit/browse_source/cinit-0.3pre19/conf/version new file mode 100644 index 00000000..19f086ee --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/conf/version @@ -0,0 +1,3 @@ +"0.3pre19" + +The version of cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/Makefile b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/Makefile new file mode 100644 index 00000000..23cc41f0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/Makefile @@ -0,0 +1,70 @@ +# +# (c) 2005 Peter Portmann (pp at bluewin.ch) +# cinit/contrib+tools +# +# This script is written for the clinux-System and published +# under the terms of GPL 2.0 +# +# Version: 0.2 +# clean with a single command instead of two commands. +# +# ChangeLog: +# 0.1 initial version +# +# Todo: +# +# Features: + +# +# compile/link options +# +# do not use DEBUG and OPTIMIZE at the same time! +#DEBUG=-DDEBUG +#OPTIMIZE=-Werror +DEBUG=-g -DDEBUG +#OPTIMIZE=-pipe -Os -Werror + +# init should be static per default! +LDFLAGS= + +# programs +CC=gcc $(DEBUG) $(OPTIMIZE) $(TIMEME) +CFLAGS=-Wall -I. -I../ +LD=gcc +STRIP=strip -R .comment -R .note + +INSTALL = install + +prefix = /usr +bindir = $(prefix)/bin + +# objects + +CLIENT=cinit.graph.text.o + +COMMUNICATION=error.o usage.o mini_printf.o + +OBJ=$(CLIENT) $(COMMUNICATION) + +# +PROGRAMS=cinit.graph.text +SCRIPTS=cconfig.graph.xml.rb \ + make.cconfig.from.xml.rb \ + cinit-vis.pl + +# targets +all: $(PROGRAMS) + +cinit.graph.text: $(OBJ) + $(LD) $(LDFLAGS) $(OBJ) -o $@ + $(STRIP) $@ + +clean: + rm -f *.o $(PROGRAMS) + +install: all + @echo '*** Installing contrib+tools ***' + $(INSTALL) -d -m755 $(DESTDIR)$(bindir) + for bin in $(SCRIPTS) $(PROGRAMS); do \ + $(INSTALL) $$bin $(DESTDIR)/$(bindir); \ + done diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/README b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/README new file mode 100644 index 00000000..85fa2f5c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/README @@ -0,0 +1,11 @@ +contrib+tools/ + programs written by others and external tools not necessary + needed but (very) nice to have + + + cinit-vis.pl - draw an ascii graph of cinit configuration [perl] + cinit.graph.text - draw an ascii graph of cinit configuration [c] + + cconfig.graph.xml.rb - creates a xml file from a cconfig [ruby] + make.cconfig.from.xml.rb - creates a cconfig from a xml file [ruby] + diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/README.ruby b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/README.ruby new file mode 100644 index 00000000..ed210cee --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/README.ruby @@ -0,0 +1,7 @@ +The ruby tools for general cconfig [0] are written by René Nussbaumer [1]. +You can find the documentation for them at [2]. + + +[0]: http://nico.schotteli.us/papers/linux/cconfig/ +[1]: http://killerfox.forkbomb.ch/ +[2]: http://killerfox.forkbomb.ch/articles/cconfig/tools diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cconfig.graph.xml.rb b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cconfig.graph.xml.rb new file mode 100755 index 00000000..d18ba422 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cconfig.graph.xml.rb @@ -0,0 +1,117 @@ +#!/usr/bin/env ruby + +=begin + + Writes an XML-Tree for a cconfig directory + Idea by Nico Schottelius aka telmich + Implemented and (C) by René Nussbaumer aka KillerFox + + This script is written for the clinux-System and published + under the terms of GPL 2.0 + + Version: 0.3 + + ChangeLog: + Version 0.3 (René Nussbaumer): + * Added support for binary files + * Added sha1 checksum for binary files + + Version 0.2 (René Nussbaumer): + * Changed checking order: symlink, directory, file. Because of + a logical bug -> directory follows symlink so, when a symlink + points to a directory no «link» element is created. + + Version 0.1 (René Nussbaumer): + * Holy hack for directory scanning (needs to be optimized) + * Hack for rexml to print out «lost» tags. This rexml sux. + + Todo: + * Optimize scanning. + * Use another xml library instead of rexml crap. + Problem: Produce dependencies -> no std-lib + + Features: + * Create a flat (no deepnes without directory) and 1:1 image + of an cconfig directory + +=end + +require 'rexml/document' +require 'base64' +require 'digest/sha1' + +require 'filemagic' + +@version = '0.3' + +def determineTarget(entry) + return 'external' if(!File.expand_path(entry).index(@initpath)) + return 'link' if(FileTest.symlink?(entry)) + return 'object' if(FileTest.directory?(entry)) + return 'attribute' if(FileTest.file?(entry)) + return 'unknown' # Should never be reached +end + +def createTree(dir, parent) + dir.each { |entry| + next if(entry =~ /^(\.|\.\.)$/) + + if(FileTest.symlink?(entry)) + e = parent.add_element('link') + + # Much fun with links + e.add_attributes( { 'name' => entry, 'target' => determineTarget(File.readlink(entry)) } ) + e.add_text(File.readlink(entry)) + elsif(FileTest.directory?(entry)) + e = parent.add_element('object') + e.add_attribute('name', entry) + + # Bad, that we need to change the directory every time. + oldPwd = Dir.pwd + Dir.chdir(entry) + createTree(Dir.new('.'), e) + Dir.chdir(oldPwd) + elsif(FileTest.file?(entry)) + e = parent.add_element('attribute') + e.add_attribute('name', entry) + if(File.stat(entry).size?) + # Yeah, we got one WITH content! W00h00, let's party. + + fm = FileMagic.new(FileMagic::MAGIC_MIME) + if(fm.file(entry) =~ /executable/) + e.add_attribute('type', 'binary') + text = File.new(entry).read + e.add_attribute('sha1', Digest::SHA1.hexdigest(text)) + e.add_text(Base64.encode64(text)) + else + e.add_text(File.new(entry).read) + end + fm.close() + end + end + } +end + + +if(!ARGV[0] || !FileTest.directory?(ARGV[0])) + puts 'You need to specify a directory' + Kernel.exit(-1) +end + +doc = REXML::Document.new + +e = doc.add_element('cconfig') +e.add_attribute('name', File.basename(ARGV[0])) +e.add_attribute('version', @version) + +@initpath = File.expand_path(ARGV[0]) +Dir.chdir(ARGV[0]) +createTree(Dir.new('.'), doc.root) + +out = '' +doc.write(out, 0, false, true) + +REXML::XMLDecl.new('1.0', 'utf-8').write($stdout) # This should automatically printed by rexml. Damn bugs. +puts '' +puts out # Workaround for a buggy rexml + diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit-vis.pl b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit-vis.pl new file mode 100755 index 00000000..4a439fc6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit-vis.pl @@ -0,0 +1,72 @@ +#!/usr/bin/perl -w +# (c) by Marcus Przyklink (downhill-clinux@burningchaos.org) +# written for cinit and published under GPL +# beautified a bit by Nico Schottelius +# optimized by René Nussbaumer +# Version: 0.1 + +use strict; +use warnings; + +# +# Variables for location and output +# +# cinit-directory +my $path = "/etc/cinit/svc/"; +# started profile +my $starting_point = "init"; +# the spaces for each level (integer: amount of spaces) +my $space = 3; +# marker for need +my $need = "-->"; +# marker for want +my $want = "==>"; + +# +# main function, recursively list the components of the cinit system +# +if (@ARGV) { + if( $ARGV[0] =~ /-(h|-help)/ ) { + print "Usage: " . __FILE__ . " without parameters for standard-use (check variables in file)\n"; + print " Parameters:\n"; + print " -h for this help\n"; + print " profile-name for a profile\n"; + exit(0); + } + else { + $starting_point = $ARGV[0]; + } +} + +# +# start first instance +# +sub get_deeper { + my ($point, $tmp_counter, $need_want) = splice @_; + + print " " x ($space * $tmp_counter) . ($need_want ? $need : $want) . " " . $point . "\n"; + + opendir(DIR, "${path}${point}/needs") and + my @next_need = sort grep(!/^\./, readdir(DIR)) and + closedir(DIR); + opendir(DIR, "${path}${point}/wants") and + my @next_want = sort grep(!/^\./, readdir(DIR)) and + closedir(DIR); + + for(@next_need) { + get_deeper($_, $tmp_counter + 1, 1); + } + for(@next_want) { + get_deeper($_, $tmp_counter + 1, 0); + } +} + +# +# start first instance +# +get_deeper($starting_point, 0, 0); + +# +# work done, go home +# +exit(0); diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit.graph.text.c b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit.graph.text.c new file mode 100644 index 00000000..5e5316ae --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit.graph.text.c @@ -0,0 +1,200 @@ +/** + (c) 2005 Peter Portmann (pp at bluewin.ch) + cinit.graph.text.c + + This script is written for the clinux-System and published + under the terms of GPL 2.0 + + Version: 0.2 + + ChangeLog: + Version 0.2 (Peter Portmann): + * Not assigned link destinies are marked by (!). + * Not readable directories are marked by "directory not readable". + + Version 0.1 (Peter Portmann): + * Print of the directory structure of the contained files and links + without following the links. + + Todo: + + Features: +*/ + +//#include +#include +#include +#include +#include +#include +#include +#include +//#include "cinit.h" +#include "error.h" + +#define FTW_F 1 /* file isn't a directory */ +#define FTW_D 2 /* file is a directory */ +#define FTW_DNR 3 /* not readable directory */ +#define FTW_NS 4 /* unsuccesfully stat on this file */ +#define MAX_CHAR 4096 + +/*********************************************************************** + * cinit.graph.text - textual representation of the cinit directory + */ + +#define CSERVICE_BANNER "cinit.graph.text - textual representatio of the cinit directory\n\n" +#define USAGE_TEXT "\n\nUsage:\n\ncinit.graph.text \n" \ + "\tpath\t- cinit installationpath\n" + +typedef int EACH_ENTRY(const char *, const struct stat *, int); +typedef enum { FALSE=0, TRUE=1 } bool; + +static char dirpath[PATH_MAX]; +static int depth = 0; +static long int filecount = 0; + +static EACH_ENTRY each_entry; +static int pp_ftw(char *, EACH_ENTRY *); +static int each_getinfo(EACH_ENTRY *); + +/*********************************************************************** + * pp_ftw: file tree walk + */ +static int pp_ftw(char *filepath, EACH_ENTRY *function) +{ + int n; + + if(chdir(filepath) < 0) /* In angegebenen Pfad wechseln */ + err_msg(FATAL_SYS, "can't change to %s", filepath); + + if(getcwd(dirpath, PATH_MAX) == 0) /* Absoluten Pfadnamen ermitteln */ + err_msg(FATAL_SYS, "error using getcwd for %s", filepath); + + n = each_getinfo(function); + + return(n); +} + +/*********************************************************************** + * each_getinfo: get more info for each file. + */ +static int each_getinfo(EACH_ENTRY *function) +{ + struct stat statpuff; + struct dirent *direntz; + DIR *dirz; + int n; + char *zgr; + + if(lstat(dirpath, &statpuff) < 0) + return(function(dirpath, &statpuff, FTW_NS)); /* Error on stat */ + + if(S_ISDIR(statpuff.st_mode) == 0) + return(function(dirpath, &statpuff, FTW_F)); /* no directory */ + + /* It's a directory. + * Call function() for it. After that handel each file in the directory. */ + + if((dirz = opendir(dirpath)) == NULL) { /* Directory not readable */ + closedir(dirz); + return(function(dirpath, &statpuff, FTW_DNR)); + } + + if((n = function(dirpath, &statpuff, FTW_D)) != 0) /* return the directorydirpath */ + return(n); + + zgr = dirpath + strlen(dirpath); /* append slash to the dirpathname */ + *zgr++ = '/'; + *zgr = '\0'; + + while((direntz = readdir(dirz)) != NULL) { + /* ignor . and .. */ + if(strcmp(direntz->d_name, ".") && strcmp(direntz->d_name, "..")) { + strcpy(zgr, direntz->d_name); /* append filename after slash */ + depth++; + if(each_getinfo(function) != 0) { /* Recursion */ + depth--; + break; + } + depth--; + } + } + *(zgr-1) = '\0'; /* deleting evrything after the slash */ + + if(closedir(dirz) < 0) + err_msg(WARNING, "closedir for %s failed", dirpath); + + return(n); +} + +/*********************************************************************** + * each_entry: handling each file and build the graph step by step. + */ +static int each_entry(const char *filepath, const struct stat *statzgr, int filetype) +{ + struct stat statpuff; + static bool erstemal=TRUE; + int i; + + char link[MAX_CHAR]; + + filecount++; + if(!erstemal) { + for(i=1 ; i<=depth ; i++) + printf("%4c|", ' '); + printf("----%s", strrchr(filepath, '/')+1); + } else { + printf("%s", filepath); + erstemal = FALSE; + } + + switch(filetype) { + case FTW_F: + switch(statzgr->st_mode & S_IFMT) { + case S_IFREG: break; + case S_IFCHR: printf(" c"); break; + case S_IFBLK: printf(" b"); break; + case S_IFIFO: printf(" f"); break; + case S_IFLNK: + printf(" -> "); + if(( i=readlink(filepath, link, MAX_CHAR)) != -1) + printf("%.*s", i, link); + if(stat(filepath, &statpuff) < 0) + printf(" (!)"); + break; + case S_IFSOCK: printf(" s"); break; + default: printf(" ?"); break; + } + printf("\n"); + break; + + case FTW_D: + printf("/\n"); + break; + + case FTW_DNR: + printf("/ directory not readable\n"); + break; + + case FTW_NS: + err_msg(WARNING_SYS, "Error using 'stat' on file %s", filepath); + break; + + default: + err_msg(FATAL_SYS, "Unknown Filetype (%d) by file %s", filetype, filepath); + break; + } + + return(0); +} + +/*********************************************************************** + * main: + */ +int main(int argc, char *argv[]) +{ + if(argc != 2) + usage(CSERVICE_BANNER, USAGE_TEXT); + + exit(pp_ftw(argv[1], each_entry)); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit.h b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit.h new file mode 100644 index 00000000..cbde3195 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/cinit.h @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit //@\\ schottelius.org) + * + * part of cLinux/cinit + * + * Dummy header file to intgrate mini_printf and usage + */ + +#ifndef CINIT_DUMMY_HEADER +#define CINIT_DUMMY_HEADER + +void usage(char *banner, char *text); +void mini_printf(char *str,int fd); + + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/error.c b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/error.c new file mode 100644 index 00000000..8174c702 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/error.c @@ -0,0 +1,124 @@ +/** + (c) 2005 Peter Portmann (pp at bluewin.ch) + error.c + + This script is written for the clinux-System and published + under the terms of GPL 2.0 + + Version: 0.1 + + ChangeLog: + + Todo: + + Features: +*/ + +#include "error.h" +#include +#include +#include +#include +#include +#include + +#define MAX_CHAR 4096 + +int debug; /* Aufrufer von log_msg oder log_open muss debug setzen: + 0, wenn interaktiv; 1, wenn Daemon-Prozess */ + +/*---- Lokale Routinen zur Abarbeitung der Argumentliste --------------------*/ +static void msg_err(int sys_msg, const char *fmt, va_list az) +{ + int fehler_nr = errno; + char puffer[MAX_CHAR]; + + vsprintf(puffer, fmt, az); + if (sys_msg) + sprintf(puffer+strlen(puffer), ": %s ", strerror(fehler_nr)); + fflush(stdout); /* fuer Fall, dass stdout und stderr gleich sind */ + fprintf(stderr, "%s\n", puffer); + fflush(NULL); /* alle Ausgabepuffer flushen */ + return; +} + +static void msg_log(int sys_msg, int prio, const char *fmt, va_list az) +{ + int fehler_nr = errno; + char puffer[MAX_CHAR]; + + vsprintf(puffer, fmt, az); + if (sys_msg) + sprintf(puffer+strlen(puffer), ": %s ", strerror(fehler_nr)); + if (debug) { + fflush(stdout); /* fuer Fall, dass stdout und stderr gleich sind */ + fprintf(stderr, "%s\n", puffer); + fflush(NULL); /* alle Ausgabepuffer flushen */ + } else { + strcat(puffer, "\n"); + syslog(prio, puffer); + } + return; +} + +/*---- Global aufrufbare Fehlerroutinen -------------------------------------*/ +void err_msg(int kennung, const char *fmt, ...) +{ + va_list az; + + va_start(az, fmt); + switch (kennung) { + case WARNING: + case FATAL: + msg_err(0, fmt, az); + break; + case WARNING_SYS: + case FATAL_SYS: + case DUMP: + msg_err(1, fmt, az); + break; + default: + msg_err(1, "Falscher Aufruf von err_msg...", az); + exit(3); + } + va_end(az); + + if (kennung==WARNING || kennung==WARNING_SYS) + return; + else if (kennung==DUMP) + abort(); /* core dump */ + exit(1); +} + +void log_msg(int kennung, const char *fmt, ...) +{ + va_list az; + + va_start(az, fmt); + switch (kennung) { + case WARNING: + case FATAL: + msg_log(0, LOG_ERR, fmt, az); + break; + case WARNING_SYS: + case FATAL_SYS: + msg_log(1, LOG_ERR, fmt, az); + break; + default: + msg_log(1, LOG_ERR, "Falscher Aufruf von log_msg...", az); + exit(3); + } + va_end(az); + + if (kennung==WARNING || kennung==WARNING_SYS) + return; + exit(2); +} + +/*---- log_open --------------------------------------------------------------- + initialisiert syslog() bei einem Daemon-Prozess */ +void log_open(const char *kennung, int option, int facility) +{ + if (debug==0) + openlog(kennung, option, facility); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/error.h b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/error.h new file mode 100644 index 00000000..a55690fb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/error.h @@ -0,0 +1,29 @@ +#ifndef ERROR_H +#define ERROR_H +/** + (c) 2005 Peter Portmann (pp at bluewin.ch) + error.h + + This script is written for the clinux-System and published + under the terms of GPL 2.0 + + Version: 0.1 + + ChangeLog: + + Todo: + + Features: +*/ + +#define WARNING 0 +#define WARNING_SYS 1 +#define FATAL 2 +#define FATAL_SYS 3 +#define DUMP 4 + +void log_msg(int kennung, const char *fmt, ...); +void err_msg(int kennung, const char *fmt, ...); + + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/make.cconfig.from.xml.rb b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/make.cconfig.from.xml.rb new file mode 100755 index 00000000..05f35cc6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/make.cconfig.from.xml.rb @@ -0,0 +1,227 @@ +#!/usr/bin/env ruby + +=begin + + Create a cconfig directory based on a xml input. + (C) 2005 by René Nussbaumer aka KillerFox + + This script is written for the clinux-System and published + under the terms of GPL 2.0 + + Version: 0.3 + + ChangeLog: + Version 0.3 (René Nussbaumer): + * Added binary file support + * Added sha1 checksum for binary files + + Version 0.2 (René Nussbaumer): + * Added some commandline options + * Added «level» so control the restrictivity of the program + * Added more «intelligence» to the program, to detect internal broken dependcies. + * Support «debug»-Levels. + * Print statistic at the end of the programs about warnings and errors. + + Version 0.1 (René Nussbaumer): + * Initial + + Todo: + * Use an rexml alternative + * Some cleanup + * Optimize + * Testing? + + Features: + * Create a cconfig directory based on a xml + +=end + +require 'rexml/document' +require 'getoptlong' +require 'base64' +require 'digest/sha1' + +@verbose = 0 +@level = 1 +@version = '0.3' + +@warnings = 0 +@errors = 0 +@checklist = Array.new + +def printMsg(prefix, msg) + puts '%-12s %s' % [prefix + ':', msg] +end + +def error(msg, fatal = 0) + @errors += 1 + fatal = 0 if(@level < 1) + fatal = 255 if(@level > 1 && !fatal) + printMsg(fatal != 0 ? 'PANIC' : 'ERROR', msg) + Kernel.exit(-fatal) if(fatal != 0) +end + +def warn(msg) + error(msg, 1) if(@level > 1) + @warnings += 1 + printMsg('WARNING', msg) +end + +def info(msg) + printMsg('INFO', msg) +end + +def debug(msg, verbosity = 1) + if(@verbose >= verbosity) + printMsg("DEBUG(#{verbosity})", msg) + end +end + +def createObject(name) + error("#{name} already exists.", 1) if(FileTest.exists?(name)) + begin + Dir.mkdir(name) + rescue + error("Could not create directory #{name}: #{$!}. Abort.", 7) + end + debug("Object #{File.expand_path(name)} has been created.", 4) +end + +def createAttribute(name, content = nil) + warn("#{name} already exists. Overwrite.") if(FileTest.exists?(name)) + begin + file = File.new(name, 'w') + file.print content if(content && !content.empty?) + file.close + debug("Attribute #{File.expand_path(name)} has been created", 4) + rescue + error("Could not create file #{name}: #{$!}. Skipped.") + end +end + +def createLink(name, target, type) + warn("#{name} already exists. Overwrite.") if(FileTest.exists?(name)) + error("Broken dependencies! Please take a look if #{target} exists on your system", 2) if(type == 'external' && !FileTest.exists?(target)) + if(!FileTest.exists?(target) && type != 'external') + #info("Possible break. But maybe the target #{target} does not yet exists. Checking later.") + exptarget = File.expand_path(target) + @checklist << exptarget + debug("Adding #{target} to the list of internal dependcies to check.", 2) + end + begin + error('You\'ve a system which does not support symbolic links. Abort.', 3) if(File.symlink(target, name) != 0) + rescue + error("Could not create symlink #{name} => #{target}: #{$!}.", 3) + end + debug("Link #{File.expand_path(name)} has been created", 4) +end + +def doWork(elm) + name = elm.name + attrname = elm.attributes['name'] + error("XML Tag with missing name attribute!", 5) if(!attrname) + if(name =~ /(object|cconfig)/) + if(name == 'cconfig') + if(elm.attributes['version']) + info("Found a version string: #{elm.attributes['version']}") + warn("This XML is maybe incompatible with this programm. I'm a version #{@version} script. The XML is generated with a version #{elm.attributes['version']} script. Please update.") if(elm.attributes['version'] > @version) + end + end + createObject(attrname) + if(elm.has_elements?) + pwd = Dir.pwd + Dir.chdir(attrname) + elm.each_element { |e| + doWork(e) + } + Dir.chdir(pwd) + end + elsif(name == 'attribute') + text = nil + e = nil + text = e.value if((e = elm.get_text)) + if(text && elm.attributes['type'] && elm.attributes['type'] == 'binary') + text = Base64.decode64(text) + if(Digest::SHA1.hexdigest(text) != elm.attributes['sha1']) + warn("SHA1 differs from file: #{Dir.pwd}#{attrname}") + end + end + createAttribute(attrname, text) + elsif(name == 'link') + error("link-Tag without content.", 6) if(!elm.has_text?) + error("link with missing target. Skipped.") if(!elm.attributes['target']) + createLink(attrname, elm.get_text.value, elm.attributes['target']) + end +end + +puts "This is #{File.basename(__FILE__)} v#{@version} by René Nussbaumer" +puts + +opts = GetoptLong.new( + ['--verbose', '-v', GetoptLong::OPTIONAL_ARGUMENT], + ['--level', '-l', GetoptLong::REQUIRED_ARGUMENT], + ['--version', '-V', GetoptLong::NO_ARGUMENT] +) + +opts.each { |arg,value| + case arg + when '--verbose' + @verbose += 1 + value.each_byte { |x| + if(x.chr == 'v') + @verbose += 1 + end + } + debug("Verbosity set to: #{@verbose}") + when '--level' + debug("Setting level to: #{value}", 3) + case value + when 'low' + @level = 0 + when 'normal' + @level = 1 + when 'paranoid' + @level = 2 + else + warn('Unknown level: ' + value) + end + when '--version' + Kernel.exit(0) + else + warn("Unknown option #{arg}#{value && !value.empty? ? ('with value ' + value) : ''}") + end +} + +if(!ARGV[0]) + puts 'Need at least one argument' + puts "Usage: #{__FILE__} " + Kernel.exit(1) +end + + +filedesc = $stdin + +if(ARGV[0] != '-') + filedesc = File.new(ARGV[0]) +end + +doc = REXML::Document.new filedesc + +doWork(doc.root) + +if(!@checklist.empty?) + info('Now checking all broken internal dependcies again') + broken = 0 + @checklist.each { |path| + debug("Checking #{path}.", 2) + if(!FileTest.exists?(path)) + broken += 1 + warn("Broken dependcies. #{path} does not exist. Please fix.") + end + } + info('Looks good.') if(broken == 0) + info('Bad, bad.') if(broken > 0) +end + +info("Successed. #{@warnings} warnings, #{@errors} errors") + diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/mini_printf.c b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/mini_printf.c new file mode 120000 index 00000000..3e9a596c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/mini_printf.c @@ -0,0 +1 @@ +../src/generic/mini_printf.c \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/usage.c b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/usage.c new file mode 120000 index 00000000..c26691ac --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/contrib+tools/usage.c @@ -0,0 +1 @@ +../src/generic/usage.c \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/.buildwarn b/software/cinit/browse_source/cinit-0.3pre19/doc/.buildwarn new file mode 100644 index 00000000..41183a43 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/.buildwarn @@ -0,0 +1,24 @@ + +Welcome to the cinit +******************** + +Hints: +------ + - Settings can be found in conf/* (also used for compiling) + - Cinit configuration is normally found in /etc/cinit + +Documentation +------------- +The documentation can be found in doc/: + + - doc/user/ contains documentation for users + - doc/devel/ contains documentation for developers + + Please read doc/user/installing-cinit.text BEFORE installing. + +Building cinit +-------------- + + "make all" - to build cinit + "make install" - to install cinit, documentation and core tools + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/COPYING b/software/cinit/browse_source/cinit-0.3pre19/doc/COPYING new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/CREDITS b/software/cinit/browse_source/cinit-0.3pre19/doc/CREDITS new file mode 100644 index 00000000..febdcf4b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/CREDITS @@ -0,0 +1,25 @@ +-------------------------------------------------------------------------------- +Credits - People contributed to cinit +Nico Schottelius, 2005-05-17 (Last Change: ls -l) +-------------------------------------------------------------------------------- + +The following list is sorted chronological, new contributors are +added at the end of the list. + + +René Nussbaumer + * helping with the general IPC idea + * testing and proof-reading code +Marcus Przyklink + * coding linear lists, making MAX_SVC obsolete + * providing cinit-vs.pl to visualize the cinit-tree +Matteo Croce + * finding good strip parameters to save about 30KiB (on glibc) +Sandro Koechli + * testing, testing and testing cinit and cinit documentation +Marcus Wagner + * building and maintaining the Debian package +Peter Portmann + * testing cinit and documentation, writing cinit.graph.text in C, other coding +Tonnerre Lombard + * NetBSD support (host + hints) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/Makefile b/software/cinit/browse_source/cinit-0.3pre19/doc/Makefile new file mode 100644 index 00000000..bb135b6a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/Makefile @@ -0,0 +1,108 @@ +# +# Makefile stolen from ccollect +# Nico Schottelius, Fri Jan 13 12:13:08 CET 2006 +# + +A2X=a2x +ASCIIDOC=asciidoc +DOCBOOKTOTEXI=docbook2x-texi +DOCBOOKTOMAN=docbook2x-man +XSLTPROC=xsltproc +XSL=/usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl + +# +# Asciidoc will be used to generate other formats later +# +MANDOCS = man/cinit.text man/halt.kill.text man/poweroff.kill.text \ + man/reboot.kill.text man/cmd.text +USERDOCS = user/compiles.on.text user/configuring.cinit.text \ + user/conf-system.text \ + user/cross-compiling.text user/current-init-problems.text \ + user/daemons.backgrounding.text user/dependencies.text \ + user/example-directory-structure.text \ + user/installing-cinit.text user/paths.text \ + user/profiles.text user/README.text +DEVELDOCS = devel/codingguideline.text +DOCS = $(MANDOCS) $(USERDOCS) $(DEVELDOCS) + +# +# Doku +# +HTMLDOCS = $(DOCS:.text=.html) +DBHTMLDOCS = $(DOCS:.text=.htm) + +#TEXIDOCS = $(DOCS:.text=.texi) + +MANPDOCS = $(MANDOCS:.text=.man) + +DOCBDOCS = $(DOCS:.text=.docbook) + +DOC_ALL = $(HTMLDOCS) $(DBHTMLDOCS) $(TEXIDOCS) $(MANPDOCS) + +# +# End user targets +# +help: + @echo "----------- documentation make targets --------------" + @echo "documentation: generate HTML, Texinfo and manpage" + @echo "html: only generate HTML (via asciidoc/docbook/xsltproc)" + @echo "htm: only generate HTML (via asciidoc)" + @echo "info: only generate Texinfo" + @echo "man: only generate manpages" + @echo "pdf: only generate pdfs (requires: fop)" + +install: $(DOC_ALL) + @echo "===> Copy " man/*.[0-9] "to the correct manpaths" + +# +# Internal targets +# +html: $(HTMLDOCS) +htm: $(DBHTMLDOCS) +info: $(TEXIDOCS) +man: $(MANPDOCS) +documentation: $(DOC_ALL) + + +# +# Generic targets +# + +# docbook gets .htm, asciidoc directly .html (or the other way round) +%.html: %.docbook + ${XSLTPROC} -o $@ ${XSL} $< + +%.htm: %.text + ${ASCIIDOC} -n -o $@ $< + +%.docbook: %.text + ${ASCIIDOC} -n -b docbook -o $@ $< + +%.texi: %.docbook + ${DOCBOOKTOTEXI} --to-stdout $< > $@ + +%.mandocbook: %.text + ${ASCIIDOC} -b docbook -d manpage -o $@ $< + +#%.man: %.mandocbook +# ${DOCBOOKTOMAN} --to-stdout $< > $@ + +%.man: %.text + ${A2X} -f manpage $< + +%.pdf: %.text + ${A2X} -f pdf $< + +# +# Distribution +# +clean distclean: + rm -f $(DOC_ALL) + rm -f man/*.texi man/*.xml man/*.[0-9] + rm -f */*.docbook + +# +# Be nice with the users and generate documentation for them +# +dist: distclean documentation + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/README.text b/software/cinit/browse_source/cinit-0.3pre19/doc/README.text new file mode 100644 index 00000000..aae0996e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/README.text @@ -0,0 +1,60 @@ +cinit documentation +==================== +Nico Schottelius +0.1, Initial Version from 2006-11-30 +:Author Initials: NS + +This directory contains the cinit documentation. + +Files and directories in this directory +---------------------------------------- + +changes/ +~~~~~~~~ +Changelogs from this and previous releases. + +devel/ +~~~~~~ +Developer related documents. Contains information for adding code, +for developing external tools to cinit or code guidelines for writing +patches to cinit. + +examples/ +~~~~~~~~~ +Example configurations to start with. + +man/ +~~~~ +Manpages for cinit and the utilities. + +todo/ +~~~~~ +Stuff that should be done, that has not yet been migrated to ditz. + +user/ +~~~~~ +The most important part: Documentation for users (aka sysadmins, +hackers, endusers?): Explains howto install, configure, use and +debug cinit. + + + + + +do-not-read/ +~~~~~~~~~~~~ +Stuff that is only kept for various strange reasons. Do not read it. + + +do-not-read/ancient +^^^^^^^^^^^^^^^^^^^ +Old documents, only thought to irritate you. +They are not interesting for most people and may contain +obsoleted or wrong information. + + +do-not-read/braindumps +^^^^^^^^^^^^^^^^^^^^^^ +Files I used to make the situation clear to myself. +They are not interesting for most people and may contain +obsoleted or wrong information. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.1 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.1 new file mode 100644 index 00000000..a0db62e6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.1 @@ -0,0 +1,2 @@ +* Initial release +* Support for adding getties diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre15 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre15 new file mode 100644 index 00000000..bd197d02 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre15 @@ -0,0 +1,3 @@ +Released: 2009-09-23 +Changes: + * Changed child handling (no function calls in sig_child handler anymore) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre16 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre16 new file mode 100644 index 00000000..6749eede --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre16 @@ -0,0 +1,6 @@ +Released: 2009-09-29 +Changes: + * Re-integrated cinit-conf + * Merged READE and cinit website + * Cleaned up bin/: Executables can now be installed + * Cleaned up top level directory diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre17 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre17 new file mode 100644 index 00000000..ec103f77 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre17 @@ -0,0 +1,3 @@ +Released: 2009-10-05 +Changes: + * Populated bin/ with a lot of scripts to migrate ubuntu/upstart to cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre18 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre18 new file mode 100644 index 00000000..40dfc92a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre18 @@ -0,0 +1,4 @@ +Released: 2009-11-05 +Changes: + * Added script to partially migrate Ubuntu Jaunty almost completly to cinit + * Added script to create minimal configuration (cinit-conf.config.shell) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre19 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre19 new file mode 100644 index 00000000..aa556feb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/0.3pre19 @@ -0,0 +1,8 @@ +Released: 2009-11-26 +Changes: + * Add install target for bin/ + * Consistent naming in bin/ (conf, cmd, helper) + * Cleanup up some cinit-conf scripts + * Cleanup documentation directory + * Cleanup scripts directory + * Cleanup src installation diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/changes/00-before-0.3pre15 b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/00-before-0.3pre15 new file mode 100644 index 00000000..ce8f4b43 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/changes/00-before-0.3pre15 @@ -0,0 +1,108 @@ +cinit-0.3pre14: 2008-03-17 + - Added test-suite for cmd + - Added support to shutdown services in cinit and cmd + (without needs and wants) + - Added linux-sysvinit wrapper for shutdown (See + scripts/wrapper/linux-sysvinit/shutdown) + - Rewrote most parts of cmd (to make it more beautiful) + - Changed license to GPL 3.0 + +cinit-0.3pre13: 2007-09-26 + - Added -V (get cmd version), -h (help), -p (get pid) to cmd + - Cleaned up namemsage in msgq.h + - Added global service lock + - Splitted of svc.h to svc.h, svc-intern.h and svc-messages.h + - Prepared logic splitoff from cinit_ipc_listen() + - Fixed bug: fork() has a general race condition + (see src/test/fork-latency.c) through use of global lock + +cinit-0.3pre12: 2007-09-06 + - Added DESTDIR support + - Added support to get service status via cmd: cmd -s + * also supports relative paths to CINIT_DIR ("/etc/cinit") + - Fixed git clone problem: hooks are needed for dumb git + - Fixed bug: We did not wait for services to finsh, which we depend on being + ran once. + +cinit-0.3pre11: 2007-09-01 + - Added basic communication: + * client binary "cmd" with argument -v returns cinit-version + - Updated {halt,reboot,poweroff}.kill + +cinit-0.3pre10: + - Fixed make install target + - Added halt.kill, poweroff.kill and reboot.kill (including manpages!) + - Fixed invalid comparision in core/cinit.c + - Be verbose: Print what we execute + - Updated documentation + +cinit-0.3pre9: 2007-05-15 + - Implemented sleeping before respawn (static delay) + - Report broken links on execution, but ignore empty services + - Cleaned up message queue error reporting + +cinit-0.3pre8: 2007-04-06 + - Updated and merged documentation: Codingstyle and Codingguide + - Cleaned sigaction-code (fixes segfault on glibc) + - Cleaned object listings + - Added notifications at shutdown + - Fixed status check + +cinit-0.3pre7: 2007-02-17 + - Many code cleanups + - Fixed glibc problem with sigaction (for details view src/core/set_signals.c) + - Added general shutdown support (will *NOT* yet stop services, + but still stop your system) + +cinit-0.3pre6: + - Many code cleanups + - Added user documentation and cleaned up documentation in general + +cinit-0.3pre5: + - Finished new SIGCHLD handler + - First cleanups for real release. + - This version is the first 0.3pre version that can handle respawn! + +cinit-0.3pre4: + - Re-implemented execution of services. + - This version is the first 0.3pre version that COULD bootup your system! + +cinit-0.3pre3: + - Finished execution all services via the reversed service tree. + +cinit-0.3pre2: + - Finished generation of the dependency tree. + +cinit-0.3pre1: + - cinit should now compile on mostly all unices + - introduced much new code + - THIS IS A DEVELOPER RELEASE, NOT USABLE IN PRODUCTION ENVIRONMENTS. + +cinit-0.2.1: (Bugfix release) + - Fixed problem in contrib+tools/Makefile when installing + - added many new scripts to convert sys-v-init, which are still early beta + (see bin/cinit.merge.sysvinit-debian-sid) + +cinit-0.2: + - Much more verbose error reporting + - You can now also disable 'once ran' services, + - You can restart services with csevice -r + - Online speech in German is available + - C_DELAY support - variable delay for sending SIGKILL after SIGTERM + - First /etc/csys configuration example (wasserstoff) is available + - a Mailing list was created + - Added tools to analyze cinit configuration + (cinit-vis.pl, cinit.graph.text.c) + - Added tools to import and export configuration to XML + (make.cconfig.from.xml.rb,cconfig.graph.xml.rb) + - Removed unecessary signalling + - Added many helper scripts to install services (cinit.install.service*) + - Fixed many small bugs in old helper scripts (cinit.add.getty, cinit.get-conf, ...) + - Added ccontrol, which allows to control cinit + - Added update (-u) via ccontrol + - Stripped cservice, which now "only" controls services + - Removed swapoff from cinit code, should be handled by off + - Much better error and processing descriptions + - A bit more verbose reporting + - Restructured run_svc, now with better error detection + - Removed Kernel panic, when halting system diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/Doxyfile b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/Doxyfile new file mode 100644 index 00000000..d7de54af --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/Doxyfile @@ -0,0 +1,305 @@ +# Doxyfile 1.5.6 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = cinit +PROJECT_NUMBER = 0.3pre15 +OUTPUT_DIRECTORY = /home/user/nico/oeffentlich/computer/projekte/cinit/doxygen +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = YES +STRIP_FROM_PATH = /home/user/nico/oeffentlich/computer/projekte/cinit/cinit/src +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = NO +QT_AUTOBRIEF = NO +MULTILINE_CPP_IS_BRIEF = NO +DETAILS_AT_TOP = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 3 +ALIASES = +OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +BUILTIN_STL_SUPPORT = NO +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +TYPEDEF_HIDES_STRUCT = NO +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = YES +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = YES +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +INLINE_INFO = YES +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = YES +GENERATE_BUGLIST = YES +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_DIRECTORIES = NO +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = /home/user/nico/oeffentlich/computer/projekte/cinit/cinit/src +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.d \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.idl \ + *.odl \ + *.cs \ + *.php \ + *.php3 \ + *.inc \ + *.m \ + *.mm \ + *.dox \ + *.py \ + *.f90 \ + *.f \ + *.vhd \ + *.vhdl \ + *.C \ + *.CC \ + *.C++ \ + *.II \ + *.I++ \ + *.H \ + *.HH \ + *.H++ \ + *.CS \ + *.PHP \ + *.PHP3 \ + *.M \ + *.MM \ + *.PY \ + *.F90 \ + *.F \ + *.VHD \ + *.VHDL +RECURSIVE = YES +EXCLUDE = /home/user/nico/oeffentlich/computer/projekte/cinit/cinit/src/ancient/ \ + /home/user/nico/oeffentlich/computer/projekte/cinit/cinit/src/test/ +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = YES +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = YES +REFERENCES_RELATION = YES +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = NO +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = +HTML_FOOTER = +HTML_STYLESHEET = +HTML_ALIGN_MEMBERS = YES +GENERATE_HTMLHELP = NO +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +HTML_DYNAMIC_SECTIONS = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +DISABLE_INDEX = NO +ENUM_VALUES_PER_LINE = 4 +GENERATE_TREEVIEW = NONE +TREEVIEW_WIDTH = 250 +FORMULA_FONTSIZE = 10 +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = YES +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4wide +EXTRA_PACKAGES = +LATEX_HEADER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = YES +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = YES +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = NO +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = NO +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +DOT_FONTNAME = FreeSans +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = YES +GROUP_GRAPHS = YES +UML_LOOK = NO +TEMPLATE_RELATIONS = NO +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +DOT_PATH = +DOTFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 1000 +DOT_TRANSPARENT = YES +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- +SEARCHENGINE = NO diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/README.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/README.text new file mode 100644 index 00000000..20524651 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/README.text @@ -0,0 +1,18 @@ +cinit/doc/devel +=============== +Nico Schottelius +0.1, Initial Version from 2006-07-09 +:Author Initials: NS + +This directory contains cinit development documents. + +Introduction +------------ +This file describes the related documents in the current directory. + +Who should read those documents? +-------------------------------- +(cinit-)developers. + +Content +------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-0.4.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-0.4.text new file mode 100644 index 00000000..61b718f8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-0.4.text @@ -0,0 +1,115 @@ +cinit 0.4 - Redesign of cinit +============================================ +Nico Schottelius +0.4.0, for cinit 0.4, Initial Version from 2006-03-11 +:Author Initials: NS + + +cinit 0.2 ran fine and the general project of developing a +parallel executing init system is finished. +With cinit 0.4 there are new aims to reach. + + +Introduction +------------ + +. AIMS + - portability: no Linux-dependency anymore + - cleaner signal handling + - better documentation so more people can use it + + +Current problems +---------------- + +Temporary filesystem and socket problematic +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The mount(2) system call is os-specific. +The temporary fs is os-specific. + + +Signal handlers are not clean +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Race conditions when multiple signals arrive + + +Reboot code is os specific +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +serv/sig_reboot.c contains umount, remount hard coded. + + +Solutions +--------- + +Temporary filesystem and socket problematic +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Remove +- the mount call +- do not create an initial socket + +Wait until we recieve a signal, then we create a socket +under the configured socket directory (see `conf/sockdir`). + + +Signal handlers are not clean +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Reboot code is os specific +~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +Misc +~~~~ + +- Configuration + /etc/cinit/config/ + init -> link to initial service + pre_boot + pre_boot_args + post_boot + post_boot_args + /etc/cinit/services/ + /etc/cinit/profiles/ + links to the starting services + + + +cinit - Internals +================= +Nico Schottelius +0.1 for cinit-0.3, Initial version: So Feb 19 10:25:46 CET 2006 +:Author Initials: NS + + +Introduction +------------ +This document describes the internals of cinit. It is thought +to be read by developers. + + +Child handler code in cinit-0.3 +------------------------------- + +In cinit versions <= cinit-0.2.1 the respawning services where +handled by an extra child handler, which was a fork of cinit. This +had some problems: + + - We allocated more memory than necessary, unecessary parts of + cinit were copied + - The SIG_CHILD-handler was not written very clean, in some versions + it was completly missing. + + +. So in `cinit-0.3` we changed it the following way: + - no extra child handlers + - handle everything in the SIG_CHILD handling function + - when sig_child is recieved do: + - check against respawn list + - if it is a respawning service, [do the following in a seperate fork?] + check whether it successfully stoped + - if yes: restart immediatly + - if no: sleep $sleep_time and then restart diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-status-translation.dia b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-status-translation.dia new file mode 100644 index 00000000..55935dd0 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-status-translation.dia differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-status-translation.png b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-status-translation.png new file mode 100644 index 00000000..6bafa119 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cinit-status-translation.png differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/codingguideline.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/codingguideline.text new file mode 100644 index 00000000..d4686d8f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/codingguideline.text @@ -0,0 +1,149 @@ +Coding style +============ +Nico Schottelius +0.1, for cinit, Initial version from 2006-11-13 +:Author Initials: NS + +This document describes the coding style used in cinit. + + +Indent +------ +Indent the code by 3 spaces for each level. +Indent variable names, so the names begin all at the same position. +Use three spaces to place them. + + +Whitespaces +----------- +Where to put or avoid whitespaces (space or linefeed (lf)). + + +Spaces +~~~~~~ +- After closing brace "if(test) return 0;" +- Spaces before and after '=', '>', '<', '==', '!='', '>=', '<=', '>>', '<<', '&', '&&', '|', '||' +- After start of comment and before end of comment: '/* text */' + + + After ')', ',' + +No spaces +~~~~~~~~~ +- Within braces and code "(!test)", +- Before braces "if(code)" +- No space before ), so if '))', do not put a space after the first ')' + + +Linebreaks +~~~~~~~~~~ +This somehow includes the setting of braces (indirectly through (not) setting +spaces. + +If +^^ + +Put the if, the braces and the opening curly brace on one line, +put the closing one together with `else` and the new opening +curly brace on one line: + +------------------------------------------------------------------------------ +if(...) { + /* code */ +} else { + /* else: code */ +} +------------------------------------------------------------------------------ + +While +^^^^^ +------------------------------------------------------------------------------ +while(condition) { + /* repeat */ +} +------------------------------------------------------------------------------ + +Do-While +^^^^^^^^ +------------------------------------------------------------------------------ +do { + /* something */ +} while(running); +------------------------------------------------------------------------------ + +Switch +^^^^^^ + +------------------------------------------------------------------------------ +switch(value) { + case DO_SOMETHING: + /* code */ + break; + default: + break; +} +------------------------------------------------------------------------------ + + + +Where to put curly braces +------------------------- + +Functions +~~~~~~~~~ +Opening and closing curly braces are placed on a seperate row: + +------------------------------------------------------------------------------ +int func(int params) +{ + body +} +------------------------------------------------------------------------------ + + +If, else, while, do-while +~~~~~~~~~~~~~~~~~~~~~~~~~ +See above. + + +Comments +--------- +where necessery, do not state the obvious in comments: + + /* this code increments tmp */ + ++tmp; + +If there is more than one line containing a comment, try to adjust them +so they look the same in width and position: + +------------------------------------------------------------------------------ + int illuminati = 23; /* do not want to comment that */ + int the_answer_to_everything = 42; /* 42. */ + + [...] + + while(illuminati < the_answer_to_everything) { /* only try before them */ + overtake_world(&self); /* overtake is complex */ + } +------------------------------------------------------------------------------ + + +Header +------- +Put a header into each file, containing: + + - Date of file being put into existence (year is enough) + - Name and e-mail (obfuscated if you want) of the author(s) + - Description of the function + - Copyright statement (if not included GPLv2 or later is assumed) + + +Includes +~~~~~~~~ +Include system headers first, then place own headers. Comment the includes, +wherefore you added them. Example: + +------------------------------------------------------------------------------ +#include /* write */ +#include "cinit.h> /* cinit_ipc_* */ +------------------------------------------------------------------------------ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/communication.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/communication.text new file mode 100644 index 00000000..64ea30cf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/communication.text @@ -0,0 +1,248 @@ +cinit - communication +===================== +Nico Schottelius +0.1 for cinit-0.3, Initial version: 2006-08-11 +:Author Initials: NS + +This document describes the internal communication of cinit. +It is thought to be read by developers. + + +Introduction +------------ +This document describes the messages used between cinit, cinit forks +and other programs that want to talk to cinit. It does NOT +describe the communication method, but only the messages sent +(for the communication method read "ipc.text"). + + +Document status +~~~~~~~~~~~~~~~ +This document is still being written, it is not finished. + + +About Messages +-------------- + +Order +~~~~~ +The client always initiates the communication. +cinit will begin listening to messages directly after its start. + + +Numbers +~~~~~~~ +Can be found in include/cinit.h. + + +Data +~~~~~ +A message always conists of a predefined structure (see src/headers/comm.h). +Can't use a structure, were missing the point that we cannot transfer dynamic +length strings. Thus the protocol consists of: + + client(int) => cinit + cinit(ini) => client + => after that follows command specific data + +The byte order is host specific (may be little or big endian). + +STRUCTURE WITH STATIC SIZE. MSGRCV! +IPC LAYER CREATES TRANSPORT! + +Type +~~~~ +Messages are binary data. + +The messages +------------ +The client always uses the same structure (struct msg_client) to contact +cinit. This way cinit does not need to handle dynamic data structures. + +cinit in contrast delivers different data structures to its clients, +depending on the question. + +The questions are issued by any type of client, the internal command used is +noted in square brackets ([]). + +The answers are given by cinit. + + +Question: Start a service (and its dependencies) [CMD_START_SVC] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command is issued either by a cinit fork or by an external client. +cinit will start a fork, which tries to start the service and its dependencies. + +The client must provide cinit with the following information: +. Name of the service to be started +. Reason why to start it +. eventually additional information (see below) + +The reason +^^^^^^^^^^ +Can be one of: +- RS_NONE (it's a manual start request) +- RS_WANTS (a currently starting service wants to start this service) +- RS_NEEDS (a currently starting service needs to start this service) + +If the reason is RS_WANTS or RS_NEEDS the client must supply the name +of the service, which wants it to be started. + + +Question: Start a service (nothing else) [CMD_START_SVC_ONLY] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will start a fork, which tries to start the service and which will +report the status back. + + +Question: Stop a service (and its dependencies) [CMD_STOP_SVC] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command is issued either by a cinit fork or by an external client. +cinit will start a fork, which tries to stop the service and each service +that 'needs' it. + +This function works recursively, thus also killing those services, that +need the service that need the current service. + + +Question: Stop a service (nothing else) [CMD_STOP_SVC_ONLY] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will start a fork, which tries to stop this service and which will +report the status back. + + +Question: Stop a service (plus 'needs' and 'wants') [CMD_STOP_SVC_WANTS] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Same as 'Stop a service (and its dependencies)', but also stop the +services that want to have this service. + +This function works recursively, thus also killing those services, that +'need' or 'want' the service that 'need' or 'want' the current service. + + +Question: What's the status of service XYZ? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Code, length of service name, the service name (without \0). +int, int, char[]; + + + +Question: Could you change the status? [CMD_CHG_STAT] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +A cinit fork reports the new status of a service. + + +Question: Could you start the rescue mode? [CMD_RESCUE] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will not give an answer to this question. +cinit will stop all services, kill all other processes and after that +spawn the rescue program. + + +Question: Could you halt the system? [CMD_HALT] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will not give an answer to this question. +cinit will stop all services, kill all other processes and after that +halt the system. + + +Question: Could you reboot the system? [CMD_REBOOT] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will not give an answer to this question. +cinit will stop all services, kill all other processes and after that +reboot the system. + + +Question: Could you poweroff the system? [CMD_POWEROFF] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will not give an answer to this question. +cinit will stop all services, kill all other processes and after that +poweroff the system. If poweroff is not possible, the system will +be halted. + + +Question: Could you warmboot the system? [CMD_WBOOT] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will not give an answer to this question. +cinit will stop all services, kill all other processes and after that +restart itself and the bootup process. + + +Question: Could you send information about a service? [CMD_INFO] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This command may only be issued by an external client. +cinit will respond with detailled information about the service +to the client. + + +Answer: Return short status of a service +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This answer is used as a response to: + + - Question: Start a service (and its dependencies) + - Question: Start a service (nothing else) + - Question: Stop a service (and its dependencies) + - Question: Stop a service (nothing else) + - Question: Stop a service (plus 'needs' and 'wants') + - Question: Could you change the status? + +cinit only responds the status of the asked service. +The structure send is "asw_sstatus", which only include a status byte. + + +Answer: Return long status of a service +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This answer is used as a response to: + + - Question: Could you send information about a service? + + +old Messages (to be transferred into this document) +--------------------------------------------------- + CMD_START_SVC: I want to start a service. + CMD_CHG_STATUS: I want to change the status of a service. + CMD_STOP_SVC: Please shutdown a service. + + CMD_RESCUE: Kill everything, and spawn a sulogin shell. + CMD_UPDATE: Hot-reboot system and reload cinit. + + CMD_HALT: Halt the system + CMD_REBOOT: Reboot the system + CMD_POWEROFF: Power-off the system + +-------------------------------------------------------------------------------- +Service status: + +-------------------------------------------------------------------------------- +service status (cinit), +Nico Schottelius 2005-09-29 (Last Modified: -) +-------------------------------------------------------------------------------- + +There are service status and service returns. Service status is a status +a service can have. A service return is a value from a function that +describes what happened with the service. + +Status has ST_ prefix, return has RT_ prefix. +See cinit.h for most up to date versions. + + +ST_NEED_FAIL - this service will not be started, until the needs are started +ST_FAIL - this service failed to start +ST_UNSPEC - some unknown error. This should never happen. +ST_ERR - ??? /* tried earlier, service failed, won't retry */ + +ST_SUCCESS - service was successfully started - senseful? +ST_TMP - some instance is currently working on it +ST_ONCE - executed once sucessfully +ST_RESPAWN - service is running and respawning + +ST_TMPNOW 55 /* now you are on it - only for clients */ +#define ST_OFF 56 /* Switching service off */ + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/configuring.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/configuring.text new file mode 100644 index 00000000..405a4d29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/configuring.text @@ -0,0 +1,18 @@ +cinit/doc/devel/using-conf.text +================================ +Nico Schottelius +0.1, Initial Version from 2006-07-28 +:Author Initials: NS + +About conf/* and how to use the configurations. + +Introduction +------------ + +Who should read those documents? +-------------------------------- + +Content +------- + + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cross-compiling.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cross-compiling.text new file mode 100644 index 00000000..fdf70564 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/cross-compiling.text @@ -0,0 +1,36 @@ +TODO: + - merge into "Cross compiling" + +cinit - Problems that may arise +=============================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2006-06-03 +:Author Initials: NS + +Max open files + OS dependent + +Installing cinit + +Introduction +------------ +General sections, OS-specific, ... + +Installing +---------- + +From source +~~~~~~~~~~~ + +In General +^^^^^^^^^^ +Download, edit conf/os to the os + +Cross-compiling +^^^^^^^^^^^^^^^ +conf/os to destination os +conf/cc +conf/ld +conf/cflags +conf/ldflags + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/gpl3-header.c b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/gpl3-header.c new file mode 100644 index 00000000..d8030109 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/gpl3-header.c @@ -0,0 +1,25 @@ +/******************************************************************************* + * + * 2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * purpose_of_this_file_is_also_there_behind_the_big_header + * + */ + + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/gpl3-header.sh b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/gpl3-header.sh new file mode 100644 index 00000000..29b75e61 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/gpl3-header.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Description here +# + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/ipc.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/ipc.text new file mode 100644 index 00000000..e57ac039 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/ipc.text @@ -0,0 +1,169 @@ +IPC - in cinit and in general +============================= +Nico Schottelius +0.1, Initial Version from 2006-07-09 +:Author Initials: NS + +IPC - Inter process communication + +Introduction +------------ +This document describes the IPC methods used and/or tested for +cinit. + +It does not describe in detail, how the different methods work +(this is already done many times, there's great documentation +available online), but more the advantages and disadvantages +(especially for an init system). + +What is IPC? +~~~~~~~~~~~~ +IPC describes methods to communicate between different processes +(programs). + +IPC as described by SUSV3 (The Single UNIX Specification Version 3) +aka IEEE Std 1003.1, 2004 Edition aka POSIX only defines +MSQ, SHM and Semaphores as IPC. This document also covers +Sockets and FIFOs. + + +What is not (yet) covered by this document? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Speed of different IPC methods, different behaviour on different +unices. + + +Why do you need IPC for an init system? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + +cinit IPC history + analysis +---------------------------- + + +FIFOs +~~~~~ +First in - first out +File on the filesystem +Always need two files for two way communication + +Hints +^^^^^ +The first idea for IPC in cinit was to use two FIFOs, like minit does. +Wrong assumption: +runit also uses fifos, but two fifos for each services. That way +more parallel transmissions is possible. +You have to pay attention: Maximum number of opened files! +(On Linux 2.6 this is 1024, which makes a maximum of 512 services. +This limit is most likely never reached, but you have to keep it +in mind). + +Sockets +~~~~~~~ +Clean and beautiful. They allow easy two way communication. + +If you created a socket, fs is r/o, you cannot use it, although +there is SO_REUSE. + +First method: Using memory mapped part (tmpfs). +Second method: use interal communication (pipes!) and external after +/etc/cinit/ becomes writable. + + +Current IPC configuration +-------------------------- + +- switchable (conf/ipc_method) +- each ipc implementation needs: + + ipc.h -> for global variables and ipc specific things + prefix variables with ipc_ + int cinit_ipc_init(void); -> general initialization + return 1 on success, 0 on failure + int cinit_ipc_listen(void); -> begin to listen for messages + int cinit_ipc_send(void *data) -> send data to a client + +Abstraction layer: cinit_ipc_* +------------------------------ +You can choose or even reimplement ipc code for cinit. You only have to create +a directory below src/ipc/ and create the following necessary functions: + +int cinit_ipc_init(void); +~~~~~~~~~~~~~~~~~~~~~~~~~ +Initialise the IPC functions in cinit. + + +int cinit_ipc_listen(void); +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Never ending looping function that listens for commands and passes the +retrieved command to read_command(). + +other +~~~~~~ +int cinit_ipc_sclose(void); /* fork of cinit come from outside! */ +int cinit_ipc_ssend(void *data); /* send to a client from the server */ +void cinit_ipc_destroy(void); /* destroy ipc handler in cinit */ + + +cinit_get_data(int ident, int size, void *data) => read size bytes from client +with ident + +/***************************************************************************** + * Functions: in clients + */ + int cinit_ipc_logon(void); /* logon to init (client init) */ + int cinit_ipc_connect(void); /* connect to init */ + int cinit_ipc_csend(struct cinit_message *data); /* send to the server from a client */ + + +-------------------------------------------------------------------------------- +Messages: + + struct cinit_question qsn; + struct cinit_answer asr; + +question: + +answer: + +int cinit_send_to(struct cinit_question *data, struct cinit_answer *res) + -> return 0 on ipc errors + +-------------------------------------------------------------------------------- +enable / disable services: + + - send svc + - send flags + + - recv return: + CINIT_ASW_SVC_STOPPED: successfully stopped the service + + CINIT_ASW_SVC_ERR: failed to stop the service + CINIT_ASW_SVC_WANTS: wants failed + CINIT_ASW_SVC_NEEDS: needs failed + opt contains number of failed services + retriev them from cinit after that + +-------------------------------------------------------------------------------- +TO SORT: + +1. message queues + o clients schreiben rein + o datenpaket gross genug fuer antwort? + +2. shared memory + o client kann direkt rauslesen, was gestartet werden muss + o client kann direkt abhaengigkeiten starten, muss diese aber + eintragen + +Ausprobieren: + - Mutexe + - Message Queues + - + +Ideen: + Message queue + 1. Client geht auf die normale + als id = pid (cast!) + dann rueck via anderer queue + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/lists.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/lists.text new file mode 100644 index 00000000..6360acb3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/lists.text @@ -0,0 +1,22 @@ +Lists in cinit-0.3 are generalized, all have the same general layout: + + - double linked + - have 'prev' and 'next' as pointers + + Add an element to a list + + /--------------------------\ + |<->first<->middle<->last<->| + + + After insert: + + /-------------------------------\ + |<->first<->middle<->last<->new<->| + + We alway have 'first'. + Need to adjust: + - new->prev = last (= first->next) + - new->next = first + - first->prev = new + - first->prev->next (= last->next) = new diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/merging.other.initsystems.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/merging.other.initsystems.text new file mode 100644 index 00000000..0baa4789 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/merging.other.initsystems.text @@ -0,0 +1,68 @@ +TODO: + - rewrite to asciidoc + - implement a sample merge + +-------------------------------------------------------------------------------- +Merging other init systems to cinit, +Nico Schottelius, 2005-06-02 (Last Modified: 2005-06-11) +-------------------------------------------------------------------------------- + +1. Preamble +2. General to do +3. Create a script + + +1. Preamble + +There is no tool available to merge any existing init-system-configuration +to cinit style. This is not because the author of cinit does not +care about support for that. He simply he has + + a) no access to every init-system available + b) not the time to analyze every init system + +He instead spends the time to improve and bugfix cinit. +This does not mean that he does not accepts scripts, which do the work. +In fact, creating and submitting a merge tool is much appreciated! + + +2. General to do + + 1. Choose your target init and possibly target platform: + - sysvinit may be different on AIX, SuSE and Debian + - /etc/rc may look different on each *BSD + - Sometimes even same platforms differ in versions: + SuSE 5.1 uses a different configuration then SuSE 9.0 + + So decide whether you want and can write a general merge tool + or if you have to specialize. + After deciding, name the script you want to write with the following + syntax: + + cinit-merge.$init-$platform-$version + + $platform and $version (either both or only platform) can be omitted. + + Examples: + + cinit-merge.sysvinit-debian-3.0 + cinit-merge.minit + + 2. Analyze how it works, detect the mechanism in it + + Your script has to detect if dependencies exist and resolve + them. It has to take care of special configurations and possibly + warn the user. + + +3. Create a script + +Now, after you learned how the old init system works, you can start creating +the merge-script (naming see above). + +This merge script + a) will perhaps not cover full old system (if so, warnings should be printed + b) should try to avoid using old (shell)-scripts, as starting + a shell for every service needed makes starting up slow + c) will include some basic features, that are needed everytime on this + platform (setting kernel configuration, hostname, etc) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/optimising.cinit b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/optimising.cinit new file mode 100644 index 00000000..4f4b5c02 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/optimising.cinit @@ -0,0 +1,33 @@ +-------------------------------------------------------------------------------- +optimising cinit, +Nico Schottelius, 2005-06-09 (Last Modified: -) +-------------------------------------------------------------------------------- + +0. Warning +1. gcc options +2. striping + + +0. Warning + +Any optimisation may cause cinit (not just cinit, but any program) to fail +and to do mysterious things instead of expected actions. + + +1. gcc options + +gcc knows of several optimisation flags. Mostly interesting is -Os for small +size (this is btw broken on gcc-3.4.3 on x86!). + +One can also pass -Werror so that any warning makes the compile to fail. + +The current standard for cinit is: (see CFLAGS in the Makefile). + + +2. striping + +With strip(1) you can remove specific sections of object files. +You have to find out, which ones you can remove safely +(for instance with objdump(1)). + +The current standard for cinit is: (see STRIP in the Makefile) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/problems.occured.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/problems.occured.text new file mode 100644 index 00000000..4d89be77 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/problems.occured.text @@ -0,0 +1,13 @@ +It sometimes looked like the child() from fork() returned earlier +then the fork() call -- is that possible? + + if(li->status == FE_NOT) { + svc_report_status(li->abs_path, "Nothing to execute :-)"); + /* + * probably a problem: we exit too fast, cinit does not yet have us in + * the process list. is that possible? => catch with sleep + */ + // sleep(2); + _exit(0); /* nothing there? fine! */ + } + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/testing-cinit-in-vm.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/testing-cinit-in-vm.text new file mode 100644 index 00000000..824b94c9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/testing-cinit-in-vm.text @@ -0,0 +1,11 @@ + +m = manually +a = automated + +m Install OS of your choice into KVM, including make, gcc, ssh and rsync +m Startup VM +a Transfer data to VM +a Compile cinit on VM +a Install cinit and configuration on VM +m Configure bootloader to add cinit as alternative choice +m Reboot and start cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/devel/testing.text b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/testing.text new file mode 100644 index 00000000..6ac0b6da --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/devel/testing.text @@ -0,0 +1,48 @@ +-------------------------------------------------------------------------------- +testing cinit in a User-Mode-Linux (uml), +Nico Schottelius 2005-06-14 (Last Modified: 2005-06-14) +-------------------------------------------------------------------------------- + +1. Get an image you want to install cinit to +2. Compile an UML +3. change bin/cinit.uml.test to your needs +4. put a configuration (/etc/cinit) on to your image +5. ./bin/cinit.uml.test + -> wait, your Linux starts with cinit enabled. + +If you omit 4, you'll see how cinit will fail without having its base +directory. + + + +-------------------------------------------------------------------------------- +Using a raw (x86) hd image: +Access partition 1 via losetup: + +sudo losetup -o 32256 /dev/loop0 "$hierabs/debian-hd.img" +linux ubd0=/dev/loop0 init=/sbin/cinit "$@" + +Offset was taken from fdisk: + +[19:22] denkbrett:emu# fdisk -l -u /dev/sda + +Disk /dev/sda: 80.0 GB, 80026361856 bytes +255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors +Units = sectors of 1 * 512 = 512 bytes +Disk identifier: 0x1669c708 + + Device Boot Start End Blocks Id System +/dev/sda1 63 19535039 9767488+ 83 Linux +/dev/sda2 19535040 23438834 1951897+ 82 Linux swap / Solaris +/dev/sda3 23438835 156296384 66428775 83 Linux + +===> 63*512bytes spaeter beginnt sda1 + +[19:23] denkbrett:~% echo 512\*63 |bc -l +32256 + +Results in losetup -o 32256 /dev/loop0 ./debian-hd.img + +Scripts from the nsbin project (lo-*) can be used. +It can be found at http://unix.schottelius.org/cgi-bin/gitweb.cgi. +-------------------------------------------------------------------------------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/Changelog b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/Changelog new file mode 100644 index 00000000..0fbf76f5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/Changelog @@ -0,0 +1,10 @@ +Mo Okt 3 00:19:40 CEST 2005 + *Changelog can now be found in git database (cg-log) +Sun May 8 12:20:35 CEST 2005 + *Changelog can now be found in monotone database (monotone log) +Sat Apr 30 15:53:53 CEST 2005 + * add socket code +Tue Apr 26 15:29:53 CEST 2005 + * removed is_cinit support, initial messaging framework +Mon Apr 18 14:07:50 CEST 2005 + * added is_cinit -> recognize if you are cinit or a fork diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/README b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/README new file mode 100644 index 00000000..45e193f3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/README @@ -0,0 +1,16 @@ +Ancient +======= +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2006-06-02 + + +These files may be incorrect, outdated, totally wrong or even trying +to take over world dominance. + + +Why are they still there? +------------------------- + +Just because to document the early days of cinit. If you are +a software archaeologist in the year 2423, you'll be happy that +I saved those files. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/TODO.lucky b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/TODO.lucky new file mode 100644 index 00000000..3ac57ee5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/TODO.lucky @@ -0,0 +1,16 @@ +18:18 hey, ich hatte gerade ein wenig lust mich mit cinit zu befassen, hier also mein + kleiner bug-report: in src/include fehlt cinit.h, (alles auf das aktuelle + tarball bezogen), ich hab's aus pre9 genommen, hatte ich noch da, da git nicht + wollte(Cannot get remote repository information.), ausserdem hast du _ statt - + in doc/man/cinit.text verwendet bei der email, das mag docbook nicht, die + beiden zeilen habe ich korrigiert, danch ging schon mal make all und auch make + ins +18:35 und warum installiert er die man pages nicht mit? +07:20 so, kleiner zwischenbericht, das argv problem bei lvm gibt es mit pre10 nicht + mehr, d.h. dass man auch kein shell-skript mehr braucht um lvm/luks-devices zu + mounten :) +07:20 soweit sieht eig. alles gut aus +07:21 wenn das so bleibt, dann werd' ich dauerhaft auf cinit umsteigen :) +07:21 und wenn sich die gelegenheit bietet, dann stell ich cinit auch mal in der + info-ag von unserer schule vor :) + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/caveats b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/caveats new file mode 100644 index 00000000..5ab123e7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/caveats @@ -0,0 +1,58 @@ +-------------------------------------------------------------------------------- +'Geheimnisse' in German, +Nico Schottelius, 2005-05-XX (Last Modified: 2005-06-11) +-------------------------------------------------------------------------------- + +- Dependencies beginning with a '.' (dot) are ignored. + So you can temporarily disable a dependency moving it to + want/.name + +- Why is the name of the socket "coala"? + Well, coala could mean 'cinit object abstract layer access', but + perhaps it's a much simpler reason. + +- cinit will start a little bit faster if you omit non needed + 'wants' and 'needs' dirs as they need to be scanned if they + do not exist + +- Currently there is no support to react on 'ctr+alt+del': + 1. It is not handled to switch on / off + (Linux: See man 2 reboot and /proc/sys/kernel/ctrl-alt-del) + 2. If the kernel handles it and sends signals to cinit + (SIGINT on Linux) they will be ignored. + There is no problem in implementing a handler for this signal, + the only reason why it is not there + (well, a template is in old/sig_special.c) is that nobody + could tell me what would be the most senseful thing to handle + ctrl-alt-del. If you can, I'll perhaps integrate it. + 3. ctrl-alt-del is currently disabled under Linux within + the service local-tuning/ctrl-alt-del + +- cinit ignores the Keyboard request + Same thing with 'ctr-alt-del': SIGWINCH is sent, but I don't + know what to do when recieving it. + +- cinit does not care about its pid + nor does cinit care if it is already running + + in serv/cinit.c is a line calling run_init_svc(). + If you call that only if getpid() == 1, cinit will behave like sysvinit + and refuse to start if pid is not 1. + + Currently cinit has no chance to control whether it's started or + not as /etc/cinit/tmp mounted again for every start. + +- cinit will sleep after respawing if ... + + a) the service did not terminate normally (!WIFEXITED(status)) + b) the service did return a non-zero exit status + +- sleeping before rechecking if a service is finished can be optimised + + Currently run_svc() checks every SLEEP_RERUN seconds (default: 1), + if the service it should start was finished by another instance + of run_svc(). As run_svc() internally uses nanosleep() for sleeping, + one could modify run_svc to use conf/sleep_rerun as a nanoseconds + value. This would add most likely much often checking, but would + result in faster results from run_svc. + What's the best value for SLEEP_RERUN is currently unknown. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/author b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/author new file mode 100644 index 00000000..aa021fa0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/author @@ -0,0 +1 @@ +Nico Schottelius diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/availability b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/availability new file mode 100644 index 00000000..cfb3f8a8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/availability @@ -0,0 +1 @@ +cinit is currently Linux-specific. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/examples b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/examples new file mode 100644 index 00000000..1a7d2dcb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/examples @@ -0,0 +1 @@ +See http://linux.schottelius.org/cinit/#config diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/files b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/files new file mode 100644 index 00000000..4d6c0921 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/files @@ -0,0 +1,5 @@ +/sbin/cinit - the init system +/sbin/cservice - control cinit +/sbin/cinit.reboot (/sbin/reboot if non-existent before) +/sbin/cinit.shutdown (/sbin/shutdown if non-existent before) +/etc/cinit - configuration directory diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/long_description b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/long_description new file mode 100644 index 00000000..18c3c082 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/long_description @@ -0,0 +1,5 @@ +cinit is a fast executing, small and simple init with support for profiles. It +minds dependencies (hard and soft, 'needs' and 'wants') and executes processes +in parallel. And it has a simple configuration, which makes many shell-scripts +unecessary (but you still could use them if you really want), which leads to +better performance and less memory using. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/date b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/date new file mode 100644 index 00000000..7dc64037 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/date @@ -0,0 +1 @@ +2005-08-21 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/man_section b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/man_section new file mode 100644 index 00000000..45a4fb75 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/man_section @@ -0,0 +1 @@ +8 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/name b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/name new file mode 100644 index 00000000..b853da25 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/name @@ -0,0 +1 @@ +cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/short_description b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/short_description new file mode 100644 index 00000000..34837bde --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/meta/short_description @@ -0,0 +1 @@ +fast executing, small and simple init with profile-support diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/parameters b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/parameters new file mode 100644 index 00000000..54df4727 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/parameters @@ -0,0 +1 @@ +cprofile: diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/path b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/path new file mode 100644 index 00000000..37edf339 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/path @@ -0,0 +1 @@ +/sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/see also b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/see also new file mode 100644 index 00000000..cb5ee6f8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/see also @@ -0,0 +1 @@ +http://linux.schottelius.org/cinit/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/synopsis b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/synopsis new file mode 100644 index 00000000..81c1e93c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit-doc/synopsis @@ -0,0 +1 @@ +/sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit.commands b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit.commands new file mode 100644 index 00000000..d34d13bd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cinit.commands @@ -0,0 +1,73 @@ +-------------------------------------------------------------------------------- +cinit commands, +Nico Schottelius 2005-04-28 (Last Modified: 2005-06-11) +-------------------------------------------------------------------------------- + +cinit allows communication through a socket (see ipc.thoughs for reasons). + +Sockets allow to find out the accessing uid, gid and pid (using SO_PEERCRED as +socketoption). + +The communication-protocol is binary, the implementation can be found +in comm/* mostly (clients use begin_msg() and server sigio() additonally). + +-------------------------------------------------------------------------------- +Protocol overview +-------------------------------------------------------------------------------- + +Any communication begins with a command. A command is a one byte +unsigned char. Depending on the command, the communication has its own +semantics. + + +Commands are: (values can be found in cinit.h) + + CMD_START_SVC: I want to start a service. + CMD_CHG_STATUS: I want to change the status of a service. + CMD_STOP_SVC: Please shutdown a service. + + CMD_RESCUE: Kill everything, and spawn a sulogin shell. + CMD_UPDATE: Hot-reboot system and reload cinit. + + CMD_HALT: Halt the system + CMD_REBOOT: Reboot the system + CMD_POWEROFF: Power-off the system + +-------------------------------------------------------------------------------- +Detailled command-listing +-------------------------------------------------------------------------------- + +CMD_START_SVC + 1. int len; /* length of service name, including \0 */ + 2. char *svc; /* name of the service, absolute pathname */ + + cinit returns: + a) status of service + b) fail + +CMD_CHG_STATUS: I want to change the status of a service. + 0. int len; + 1. char *svc; + 2. char status; /* status: + once: started successfully the service once. + fail: tried to start once, but the service exit ungracefully + respawn: I am on it, as soon it exists I'll restart! */ + 2. pid_t pid /* the pid of the service, if started once + or the pid of the service watcher, if respawning */ + + cinit returns: MSG_OK|MSG_FAIL (char) + +CMD_STOP_SVC: Please shutdown a service and its dependencies. + 1. int len; /* length of service name, including \0 */ + 2. char *svc; /* name of the service, absolute pathname */ + + cinit returns: Status of service (should be ST_OFF) + + +The following commands do not return anything nor do they need any parameter: + +CMD_RESCUE: Kill everything, and spawn a sulogin shell. Irreversible. +CMD_HALT: Halt the system. +CMD_REBOOT: Reboot the system. +CMD_POWEROFF: Power-off the system. +CMD_UPDATE: Update cinit, hot-reboot the system. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/author b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/author new file mode 100644 index 00000000..aa021fa0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/author @@ -0,0 +1 @@ +Nico Schottelius diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/long_description b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/long_description new file mode 100644 index 00000000..82818a93 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/long_description @@ -0,0 +1 @@ +cservice controls cinit. Please use cservice -h for help. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/date b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/date new file mode 100644 index 00000000..7dc64037 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/date @@ -0,0 +1 @@ +2005-08-21 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/man_section b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/man_section new file mode 100644 index 00000000..45a4fb75 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/man_section @@ -0,0 +1 @@ +8 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/name b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/name new file mode 100644 index 00000000..49c847bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/name @@ -0,0 +1 @@ +cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/short_description b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/short_description new file mode 100644 index 00000000..34837bde --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/meta/short_description @@ -0,0 +1 @@ +fast executing, small and simple init with profile-support diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/parameters b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/parameters new file mode 100644 index 00000000..605b08b4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/parameters @@ -0,0 +1 @@ +[-eaphru] [thilo] diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/path b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/path new file mode 100644 index 00000000..85b0cb56 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/path @@ -0,0 +1 @@ +/sbin/cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/see also b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/see also new file mode 100644 index 00000000..cb5ee6f8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/see also @@ -0,0 +1 @@ +http://linux.schottelius.org/cinit/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/synopsis b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/synopsis new file mode 100644 index 00000000..81c1e93c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/cservice-doc/synopsis @@ -0,0 +1 @@ +/sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/README b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/README new file mode 100644 index 00000000..e734d6d2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/README @@ -0,0 +1,2 @@ +doc/extern/ + Some things related to cinit from the outside world. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/ipc.thoughts b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/ipc.thoughts new file mode 100644 index 00000000..e2619d34 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/ipc.thoughts @@ -0,0 +1,83 @@ +-------------------------------------------------------------------------------- +Thoughts about different UNIX-IPC, +Nico Schottelius, 2005-04-28 (Last Modified: 2005-06-11) +-------------------------------------------------------------------------------- + +Howto cinit communicates with + a) cinit-forks + b) any other program + +a) cinit-forks + +a.1) shared memory + +Access could generally be done with shared memory. The problem with +that is, that -lrt is required, which implicits -lpthread, which +makes linking staticly problematic (at least for glibc). + +a.2) pipes + +A maximum of ~510 pipes could be used ( (1024-3)/2 ), +1024 is the maximum opened file deskriptors, +minus 3 (stdin/stdout/stderr) already opened, divided +by two, because two fds needed per client. + +Pipes cannot be used easily through forks of forks. + +a.3) fifos + +FIFOs are easy to use, but you would need to create two FIFOs +for _every_ service, as with only two FIFOs we cannot reliable +detect, _who_ is writting to us currently and who wants to read. + +The same limit as above is true for fifo, too: A maximum of ~510 +services. + +a.4) system-v-ipc + +No documentation found nor tested. + +a.5) sockets + +Are indeed a very clean way. There's only one problem: +bind() fails on read-only mounted devices: + + - The socket either does not exists and cannot be created + - or the socket exists, but bind() refuses to reuse it + (error: Address already in use) + +Imho bind() should even honour the socket-option SO_REUSEADDR, +which allows to re-use a socket, if there's no other program bound to. + +As far as I can see, SO_REUSEADDR is only honoured, if socket is of +type PF_INET (we use PF_UNIX) and POSIX does only specify how to +check for support, but not that sockets have to be able to use +SO_REUSEADDR (see posix.aardvark.bug.report). + +That way, we are forced to mount a temporarily filesystem on +/etc/cinit/tmp and create the socket below this directory. This is not +the clean and easy solution one would wish. Still, sockets +seem to be the cleanest and most reliable way to have IPC for +this situation. + +See socket(2), bind(2), listen(2), accept(2), socket(7) and unix(7) +for help. + +b) any other program + +What you can do is to tell cinit to + - reboot, + - halt, + - poweroff, + - update itself (hot-reboot) + - and to start a rescue mode (see using.rescue). + +Simple send cinit a signal, what to do: + HUP: reboot + USR1: halt + USR2: rescue + TERM: poweroff + CONT: update + +See signal(2) and signal(7) for help and serv/sig_reboot.c for implementation. +-------------------------------------------------------------------------------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/ipc.usenet.posting b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/ipc.usenet.posting new file mode 100644 index 00000000..28abcec3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/ipc.usenet.posting @@ -0,0 +1,48 @@ +From: Nico Schottelius +Subject: Unix IPC, socket/AF_UNIX; bind on r/o devices? +Date: 09 May 2005 09:51:27 GMT +To: comp.unix.programmer + +Hello! + +Situation: + - everything mounted readonly (as when starting the system) + - one process with n children, which may have n children (recursive) + - all the children and children of children should be able to talk to the + first parent + +Problem: + - Using bind() will fail, because + a) socket cannot created + b) the existing socket cannot be reused + +Other possibilities not working: + - shared memory is not an option, as one need + -lrt, which needs -lpthread, which is problematic to link statically + + - pipes: handling the pipes from parent to child of child of child + would be hard to program + + - socketpair: should be the same problematic as it's with pipes + + - fifos: one would have to create the fifos before and two fifos + for each child; possible, but very unelegant; and one would have + to memorize, which child is connected to which fifo; again possible, + but somehow unelegant + + - signaling: one could implement communication with some kind of + morse code with signals, but that won't be a good solution + +Questions: + - Is there any way, case b) (socket already existing) can be solved in + a way that I tell bind() to use an existing socket? + - What would be the best solution to talk bidirectional to clients + in this scenario? + +I appreciate any hint, as I really like the socket mechanism and would +like to keep it. + + +Thanks in advance, + +Nico diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/linux.kernel.eats.arguments b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/linux.kernel.eats.arguments new file mode 100644 index 00000000..dbaf57d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/linux.kernel.eats.arguments @@ -0,0 +1,33 @@ +-------------------------------------------------------------------------------- +Linux, the kernel, eats arguments +Nico Schottelius 2005-06-17 (Last Modified: 2005-06-17) +-------------------------------------------------------------------------------- + +If you specify + + variable=value + +to the Linux kernel, the argument will NOT be passed to cinit. + +Here's the relevant code block from init/main.c of the Linux kernel: + +------------------------------------------------------------------------------- + +From init(void * unused) the function run_init_process(char *init_filename) +is called, which passes argv_init (char * argv_init[MAX_INIT_ARGS+2]) to init. + +First init_setup(char *str) resets all elements of the argv_init to NULL. + +The function unknown_bootoption(char *param, char *val) fills the +argv_init array, but only with parameters, which have no value +(val). + +The function parse_args calls unknown_bootoption with the unknown options. + +------------------------------------------------------------------------------- + +This way the profile support in all cinit versions below cinit-0.1 will +only work if you change conf/profile, because "cprofile=value" will +not be given to cinit, because it's not treated as a command line option. + +The original value "cprofile=" is replaced by "cprofile:" as of cinit-0.1. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/posix.aardvark.bug.report b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/posix.aardvark.bug.report new file mode 100644 index 00000000..0c606b41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/extern/posix.aardvark.bug.report @@ -0,0 +1,52 @@ +To: austin-review-l__AT__opengroup.org +From: nico-posix__AT__schottelius.org +Subject: Bug in TC2-d6 bind - bind a name to a socket +Reply-To: austin-group-l__AT__opengroup.org + + Bug report from : Nico Schottelius , cLinux + +(Note that the reply-to line automatically redirects +to austin-group-l__AT__opengroup.org for further discussion on bug reports) + +@ page 1 line 0 section bind - bind a name to a socket objection {-1} + +Problem: + +bind should 'assign a name to a socket', but in particular environments it will fail, where it could succeed. + +Long Description: + +When opening a new socket, with type PF_UNIX +(sock = socket(PF_UNIX,SOCK_STREAM,0);) and one sets +the socket option SO_REUSEADDR +(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &tmp, sizeof(tmp))), +bind does not honour this setting. + +It is reported on irc channels, that SO_REUSEADDR is only supported on +PF_INET sockets and that's what I would claim a bug. + +If a socket exists in the filesystem and no process is bound to +it, bind wail fail anyway. + +This is especially problematic, when one is in an environment, +which is pre-startup (like beeing init) and one wants to use +sockets, but everything is mounted read-only. + +So, if bind() would honour the option, it would be able +to bind() to a socket, which exists (as creating one on a +read-only filesystem is not possible). + + + +Action: + +Proposal: + +Add better specification to either socket(7) or bind(2), which +explains the behaviour of bind, when this option is set +or even better: Specify, that bind should take care of this bit, +also when using PF_UNIX. + +In general the socket(7) manpage should explain more in detail +or at least reference other documents (unix(7)?), which explain what the +option for a specific protocol does. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/fun-testing b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/fun-testing new file mode 100644 index 00000000..47e4b74d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/fun-testing @@ -0,0 +1,20 @@ +kind tot 17 ... +Read path: / +Read path: e +Read path: t +Read path: c +Read path: / +Read path: c +Read path: i +Read path: n +Read path: i +Read path: t +Read path: / +Read path: t +Read path: e +Read path: s +Read path: t +Read path: s +Read path: v +Read path: c + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/how_it_works_internally b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/how_it_works_internally new file mode 100644 index 00000000..9c836cb0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/how_it_works_internally @@ -0,0 +1,26 @@ +The following is a very simple process structure of cinit internals: + +cinit-main starts +\ + |-> execute run_init_svc() + | \ run_svc(CINIT_INIT); + | | check status <-------------------\ + | | set status = temp | + | \ check dependencies | + | | fork(run_svc()) for every WANT | + | | run_svc() for every NEED / + | / check if respawning { do .. while(repawn?) + | \ yes: (remember: run_svc _must_ return!) + | | msg_change_status(respawn) + | | add watcher_signal handler to stop! (SIGTERM) + | | fork(exec_svc) <--| + | | waitpid(fork) | while(1) { ... } + | \ sleep(WAIT_SECS) ---/ + | | no: fork(exec_svc) + | \ waitpid(fork) -> yes, wait! + | | msg_change_status + | / + | / + | -> while(1) + | - listen to signals + | - listen on socket diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/init-idea-first b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/init-idea-first new file mode 100644 index 00000000..2d677d8d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/init-idea-first @@ -0,0 +1,38 @@ +- restarting/respawning + touch respawn +- dependencies + a needs started b +- clean multiply dependencies +- start & stop dependencies + start_depends + stop_depends +- parallel executation +- start and stop commands + start -> link + start_param -> parameters, like minit + stop -> link + stop_param -> parameters, like minit + + if no stop command is available, try to kill the pid we started at stop + +/startup/ + start_depends=gettys +/shutdown/ + stop_depends=power_off + + +gettys/ + start_depends=getty/1 + start_depends=getty/2 + start_depends=getty/3 + start_depends=getty/4 ... + +getty/1/ + start=/sbin/fgetty + respawn + +power_off/ + stop_depend=umount + +umount/ + stop_depend= diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/porting.to.other.os b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/porting.to.other.os new file mode 100644 index 00000000..65fdc07b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/porting.to.other.os @@ -0,0 +1,25 @@ +-------------------------------------------------------------------------------- +Porting cinit to other operating systems, +Nico Schottelius, 2005-06-02 +-------------------------------------------------------------------------------- + +cinit is currently Linux-specific. + +It currently does not compile / work on other Unices, because +we use O_ASYNC flag of open(2) which is _not_ a standard. + +This way we can act very elegant on incoming connections by our +forks. If somebody finds a at least as elegant solution +to act on incoming data which is more portable, I would +be happy to recieve a diff -u. + +Additionally we currently do mount a temporarily filesystem +on /etc/cinit/tmp, which allows us to create a socket, where +nothing is mounted r/w yet. + +If a Unix has some kind of tmpfs, this can easily be changed +to the appropriate value in conf/*tmp*. + +The O_ASYNC thing will perhaps become a compile option to cinit +(via conf/socket_function for instance), so that using standard +mechanism will be possible. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/removing.zombies b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/removing.zombies new file mode 100644 index 00000000..9527e652 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/removing.zombies @@ -0,0 +1,48 @@ +-------------------------------------------------------------------------------- +Removing Zombies, +Nico Schottelius 2005-06-15 (Last Modified: 2005-06-15) +-------------------------------------------------------------------------------- + +First of all, the definition of a zombie: + + ''Defunct ("zombie") process, terminated but not reaped by its parent.'' + [Excerpt from ps(1)] + + ''In the case of a terminated child, performing a wait allows the system to + release the resources associated with the child; if a wait is not performed, + then terminated the child remains in a "zombie" state (see NOTES below). + + [...] + + NOTES + A child that terminates, but has not been waited for becomes a "zom- + bie". The kernel maintains a minimal set of information about the + zombie process (PID, termination status, resource usage information) + in order to allow the parent to later perform a wait to obtain + information about the child. As long as a zombie is not removed + from the system via a wait, it will consume a slot in the kernel + process table, and if this table fills, it will not be possible to + create further processes. If a parent process terminates, then its + "zombie" children (if any) are adopted by init(8), which automati- + cally performs a wait to remove the zombies.'' + [Excerpt from waitpid(2)] + + So you can see, that if some process misbehaves and forgets about + its children, we, cinit, will adopt it. In the first versions of + cinit (cinit-0.0.1 <-> cinit-0.0.7) we ignored SIGCHLD. This way + the zombies stayed in the system. Since cinit-0.0.8 we have + sig_chld(), which removes the zombies. + + So far so good. Now let's remove this feature. Yes, you heard right. + + If cinit does not catch the zombies they will stay in the system. + Yes, that's ugly. And that's how it should be. You should see, which + software is broken and should contact the authors to fix it. + + To restore the 'old' behaviour of cinit, change + generic/set_signals.c (ignore SIGCHLD) + Makefile: remove serv/sig_child.c from modules list + + cinit in general will keep the behaviour of reaping the vestiges, + which broken software left behind (as it is cleaner for the system to + deallocate unused ressources). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/security b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/security new file mode 100644 index 00000000..f1dac591 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/security @@ -0,0 +1,35 @@ +-------------------------------------------------------------------------------- +security, +Nico Schottelius 2005-06-13 (Last Modified: 2005-06-14) +-------------------------------------------------------------------------------- + +A little note about cinit security and how to exploit it: + +cinit trusts its socket, /etc/cinit/tmp/coala. If somebody not +authorised has access to it, your system is taken over. + +Through this socket anybody with write access can: + + - shutdown, restart and power-off the host + - spawn a local unprotected shell + - execute anything as the user cinit runs (most likely root) + +Currently cinit does not care very much about the socket permissions. +On my system this creates a socket with srwxr-x-rx permissions, which +isi suitable for normal operation, which will not accept connect() +by others than root. + +But you can also loosen the security and allow people from a specfic group +to control your system: + + ei # chmod 770 /etc/cinit/tmp/coala + ei # chown root:cinit /etc/cinit/tmp/coala + +Now everybody in the cinit group can control your system. +Please think twice before doing that, as you read above, anyone from +the cinit group may start a root shell on the initial console then! + +For extra parnoid settings you can do the following: + + ei # chmod 700 /etc/cinit/tmp/coala + ei # chown root:root /etc/cinit/tmp/coala diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/socket.poll_vs_o_async b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/socket.poll_vs_o_async new file mode 100644 index 00000000..477f2bff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/socket.poll_vs_o_async @@ -0,0 +1,39 @@ +-------------------------------------------------------------------------------- +Socket: poll(2) vs. O_ASYNC, +Nico Schottelius 2005-06-22 (Last Modified: 2005-06-22) +-------------------------------------------------------------------------------- + +0. General problem +1. O_ASYNC +2. poll(2) + + +0. General problem + +cinit has to react, as soon as there's data on the socket. + +1. O_ASYNC + +When you open a socket with O_ASYNC (or specify it with fcntl(2)) under +Linux, your process recieves the SIGIO signal from the kernel, as soon +as data is available. + +The problem is the handling of signals seems not to be serialised: + +The function, which is called on the SIGIO signal (called sigio() here) +calls other functions. Those functions way recieve SIGIO while working, +so the first data stream is not yet finished, though the next +stream is beeing read. + +This gives very nice race-conditions, which are very nice to debug. + +2. poll(2) + +poll(2) is a standard Unix-call (XPG4-UNIX), which waits a specific +timeout (or infinite time if you specify a value less that zero) for +the socket (or the fd in general) to be in a state where +data is available to read (in fact poll can do much more, but we are +not interested only in POLLIN and POLLPRI). + +While poll(2) seems to be a very bit slower than sigio it works reliable. + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/thoughts.closed b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/thoughts.closed new file mode 100644 index 00000000..91a8e080 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/ancient/thoughts.closed @@ -0,0 +1,52 @@ +-------------------------------------------------------------------------------- +Closed thoughts, +Nico Schottelius, 2005-05-XX (Last Modified: 2005-06-14) +-------------------------------------------------------------------------------- + +1. using SIDs (service IDs) to communicated with external processes + + This was a very bad idea: The external program could exploit us by + specifying an arbitary big SID (as the SID is simply the index + of our service array). + +2. using function pointers to handle messages + + Seems like it works fine. We have handlers for each + message (do_*), which are called by client and server. + The function pointer is simply to read or write, dependending + if it is the client or the server. This way we don't need + to rewrite communications parts. + +3. Using different storage + + First all services were saved in a service array of the size + MAX_SVC. This has been replaced by a double-linked list. + Have a look at serv/list.c. + +4. Using sockets for IPC (between cinit forks) + + Works very fine, though we have to mount a temporarily fs before. + +5. Removing the maximum number of direct dependencies + + Is not planned, as it looks like the current number (32, see + conf/max_deps) seems to be much more than needed. And if + one really needs more, simply increase conf/max_deps. + +6. Using a directory params with 1,2,3,4 for argv + + This would make substituting a single argument easier, but only + if you know which one you have to change. This would add + an additional dirent(), which would not replace the current read(), but + add more open() and close()s. As this does not seem to make live + easier for system administrators, this is not implemented. + If you really like it, hack client/exec_svc.c + +7. Using TCP/IP sockets + + This would be a very small change in the code, but would allow + to control cinit over network. Since there is no authentication, + this would be highly insecure. On the other hand, cinit + could control the parallel start of many hosts, if they + should become 'one' computer at the end. As this is not needed + currently, it's not implemented. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/README.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/README.text new file mode 100644 index 00000000..c4947a13 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/README.text @@ -0,0 +1,2 @@ +DO NOT READ CONTENT IN THIS DIRECTORY. +(or at least do not blame me, if you get really confused after reading it) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/circular-dependencies.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/circular-dependencies.text new file mode 100644 index 00000000..dcc91ea7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/circular-dependencies.text @@ -0,0 +1,35 @@ +What todo with circular dependencies? + a needs b + b needs a + + - try to start them? + status a: is_starting + status b: not_set + a wants b, so a service starter for b starts + status a: is_starting, waiting for b + status b: is_starting + service starter for b sees that a is needed + service starter for b sees that a is already being started + service starter for b begins to execute b + status a: is_starting, waiting for b + status b: is_starting, executing "on" + service starter b finishes + status a: is_starting, waiting for b + status b: FAILED | RESPAWN | ONCE + service a continues + b successful: execute on + b failed: register / print that we do not start, because + b failed + + -> this would only catch possible deadlocks, if the dependency + tree / status check is done dynamically + -> in case of pre-building the dep-tree this situation must + be concerned: + - start both a and b? + - or stop due to circular dependency? + + - Abort on detection of a circular dependency + * possible without pre-calculating? + - perhaps only with direct communication possible? + * pre calculate + - do not start that services? diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/converting-debian b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/converting-debian new file mode 100644 index 00000000..ee40fdff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/converting-debian @@ -0,0 +1,30 @@ +# If you would like to automatically convert a debian system, you could +# use this script as a start point +# +# how it could look like +# + +# create cinit base configuration + +# analyse enabled services +level=$(awk -F: '/^id/ { print $2 }' /etc/inittab) +rcdir="/etc/rc${level}.d/" +initdir=/etc/init.d + +cd "$rcdir" +for svc in *; do + if [ -d "${debian_map_dir}/${svc}" ]; then + echo "Adding $svc" + else + + fi +done + +# Also add existing services in /etc/init.d +for ... + if [ ! -e $rcdir/$svc ] + if [ -d "${debian_map_dir}/${svc}" ]; then + echo "Adding, but not enabling" + fi + fi +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/converting-general b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/converting-general new file mode 100644 index 00000000..8a0a2e40 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/converting-general @@ -0,0 +1,10 @@ +kern=$(uname -s) + +case "${kern}" in + $known_kern) + $scriptdir/$kern + ;; + *) + echo "Unknown system" + ;; +esac diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/creating-new-configurations b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/creating-new-configurations new file mode 100644 index 00000000..a251de5d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/creating-new-configurations @@ -0,0 +1,6 @@ +scripts/create_baseconfig.sh # create base +scripts/cinit.install.standard.dirs # create common categories + +- create fsck +- set hostname +- create getty(s) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/messages.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/messages.text new file mode 100644 index 00000000..f4ef769e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/messages.text @@ -0,0 +1,6 @@ +This document describes the messages used between cinit and its +"clients" (i.e. ccontrol, cservice, cinit.halt, ...): + +Signal messages +--------------- +As signals diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/possible_service_pre_calculation.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/possible_service_pre_calculation.text new file mode 100644 index 00000000..96ec3a73 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/possible_service_pre_calculation.text @@ -0,0 +1,19 @@ +- start at + * create a new service entry (if not exists) <--- + * reads needs | + - follow dependencies ------------------------ + * only if service does not yet exist! | + * read wants | + - follow dependencies ------------------------ + * only if service does not yet exist! + * create + - needed by entry in dependencies + - needs entry in service + - wanted by entry in dependencies + - wants entry in service + + * record + - (on,off)(,.env,.params)? + - alternatively put that code into service starter + * add services without further needs into a special + "begin" structure to be reused at fireing of the services? diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/possible_service_status.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/possible_service_status.text new file mode 100644 index 00000000..eb0f21e9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/possible_service_status.text @@ -0,0 +1,14 @@ + + - NOT_SET: this service has not yet been initialized + - RESPAWNING: happily respawning + - RESPAWN_DELAY: waiting delay before restarting + * HINT: using alarm()? + - senseful for single process service watcher + * HINT: using nanosleep()? + - senseful for per service process watcher + - NEED_FAILED + * add a (somehow terminated) list of services that failed? + * use global status to checkout which services failed? + - WANT_FAILED? + * NOT NECESSARY, it is a simple want, we do not need it. + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/registering_needs_wants.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/registering_needs_wants.text new file mode 100644 index 00000000..ededbd41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/registering_needs_wants.text @@ -0,0 +1,55 @@ +Each service has a list of services it + - needs + - is needed by + - wants + - is wanted by + + +Each entry is a service pointer. +The simplest list could look like this: + + service a: + needs: + b f g NULL + +So the needs pointer is NULL terminated: + needs = realloc(count_links) + -> how to get the count? + 0x02 + 0x + + Better: A double linked list (like the main service list)? + +Could look like: + service a: + needs: + *service + *next + *prev + +This design could also be used for wants. + +On the other hand, we've to register us at the needed/wanted service: + + service b: + needed_by: + *service + *next + *prev + + +So each service needs four pointers: + needs + needed_by + wants + wanted_by + +And on each request both lists have to be modified! + +Example: + + Service "a" adds "b" as needed: + + - add "a" needs "b" + - add "b" needed_by "a" + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/root-vm-testing b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/root-vm-testing new file mode 100644 index 00000000..a8773dea --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/root-vm-testing @@ -0,0 +1,9 @@ +[19:33] denkbrett:root% cat uml-mount.sh +SDIR=$(dirname $0) +DDIR=$(dirname $0)/root +sudo mount "$SDIR/Debian-3.0r0.ext2" "$DDIR" -o loop,acl + +denkbrett# tar cfj ~nico/projekte/cinit/conf-vm-2007-03-05.tar.bz2 cinit +denkbrett# chown -R nico cinit +denkbrett# chown nico ../sbin + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/shutdown.text b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/shutdown.text new file mode 100644 index 00000000..ac76425d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/shutdown.text @@ -0,0 +1,84 @@ +cinit - braindumps - shutdown +============================= +Nico Schottelius +v0.1, for cinit-0.3, 2007-01-11 +:Author Initials: NS + +Just some braindumps. Do not read. + +Introduction +------------ +Shutting down the system. + +When? +----- +- reboot +- halt +- power off +- further needed? + +How / What? +------------ +- Stop services in the correct order + * reuse the service tree / needs / needed_by! + * call off, if existent + * if respawning, send SIGTERM? + - not if off is existent? + * give some variables to off? + - $RESPAWN_PID: if respawning +- send SIGTERM to other apps? + * or put that into special? special/post_svc_shutdown +- call special/{halt,poweroff,reboot} + * no, implemented that directly into cinit! +- implement timely controlled shutdown: + * cinit.shutdown forks (?) itself and waits, then sends a signal + to cinit to initiate the shutdown process + * create mappers for target OS + - Linux + - {free,net,open}bsd + - others may contribute theirself +- also implement poweroff + * kill -TERM 1 +- also implement reboot + * kill -HUP 1 +- also implement halt + * kill -USR1 1 + + +The implementation +----------------- +x shutdown is initiated +x disable communication (nobody can influence us anymore) +x install special signal handler? + - no. we do not care about zombies anymore, we are gone soon anyway + - simply reset to the default +- begin to shutdown services + * where to start? + * begin shutdown at the end of the tree, viewing/sorting it by the 'needed_by' + -> where to begin sort? + -> worst implementation: scan all services (easy for now) + -> result: list of services, that noone needs :-) + * stop those services and step above + - stop a service, as soon as noone needs it anymore + * check all needed_by links + * more or less the inverted gen_svc_tree +- how to shutdown a service + * if existing, call off + - if off does not exist: + * if respawn: send sigterm to the process + * also implement sigkill at this stage? + - think we can delay it to the end + - otherwise users can use off! + - implement environment for off ($cinit_respawn_pid, $cinit_service_name) + - do *NOT* care about the return value, we can't do anything for it + anymore anyway +- after all services are shutdown, kill all remaining services + * SIGTERM + * wait(defined_time_in_seconds) + * SIGKILL +- call the last command + * to cleanup the system + - umount -a (if needed) + - swapoff (if needed) + - sync (if needed) +- switch off diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/sizes b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/sizes new file mode 100644 index 00000000..ddd30f75 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/do-not-read/braindumps/sizes @@ -0,0 +1,6 @@ +sysvinit: +root 1 0.0 0.0 1944 648 ? Ss 02:12 0:00 init [2] + +cinit-0.3pre8-glibc-linux: +compiler 25323 0.0 0.0 1564 392 pts/2 S+ 20:22 0:00 ./cinit + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/README new file mode 100644 index 00000000..f803f9b5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/README @@ -0,0 +1 @@ +This directory contains example configurations. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/README new file mode 100644 index 00000000..a862330c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/README @@ -0,0 +1 @@ +Example configurations for cinit-0.3. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/README new file mode 100644 index 00000000..0b059353 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/README @@ -0,0 +1,5 @@ +This directory contains configuration examples from +'denkbrett' which is Nico Schottelius' main notebook. + +It's a x86 Linux notebook, so x86 and Linux specific +services will be loaded (like acpid, udev). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-1.tar.bz2 new file mode 100644 index 00000000..22889cc0 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-1.tar.bz2.README new file mode 100644 index 00000000..e0582b25 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-1.tar.bz2.README @@ -0,0 +1 @@ +shell running, getty missing diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-2.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-2.tar.bz2 new file mode 100644 index 00000000..bc129f72 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-2.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-2.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-2.tar.bz2.README new file mode 100644 index 00000000..b5a39918 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-2.tar.bz2.README @@ -0,0 +1,3 @@ +getty on tty2 running, but displays +"Unable to determine your tty name". +Possibly problem with empty /dev. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-3.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-3.tar.bz2 new file mode 100644 index 00000000..2b1bc744 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-3.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-3.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-3.tar.bz2.README new file mode 100644 index 00000000..9f87a662 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-3.tar.bz2.README @@ -0,0 +1,2 @@ +Added fsck for root filesystem +and added (currently) unneeded /proc service. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-4.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-4.tar.bz2 new file mode 100644 index 00000000..31a73e9a Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-4.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-4.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-4.tar.bz2.README new file mode 100644 index 00000000..3f43b0d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-4.tar.bz2.README @@ -0,0 +1,2 @@ +Added needs /proc to getty/1 and 2. +Now we can login through getty! diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-5.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-5.tar.bz2 new file mode 100644 index 00000000..9a490a32 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-5.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-5.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-5.tar.bz2.README new file mode 100644 index 00000000..cb778400 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-5.tar.bz2.README @@ -0,0 +1,2 @@ +Added service "network/hostname" and added it as wants to +the gettys. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-6.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-6.tar.bz2 new file mode 100644 index 00000000..42d30cdc Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-6.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-6.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-6.tar.bz2.README new file mode 100644 index 00000000..b1aac768 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-6.tar.bz2.README @@ -0,0 +1,3 @@ +Added respawn to the rescue-shell and the gettys. +Also added TERM=linux so agetty can pass that to +the shell. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-7.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-7.tar.bz2 new file mode 100644 index 00000000..9b75a07b Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-7.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-7.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-7.tar.bz2.README new file mode 100644 index 00000000..cdedced3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-7.tar.bz2.README @@ -0,0 +1,3 @@ +Added eth0 and a driver loader as well as added it +to the init list. If everything goes well, I'll have +dynamic network running after reboot :-) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-8.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-8.tar.bz2 new file mode 100644 index 00000000..2a50bf51 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-8.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-8.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-8.tar.bz2.README new file mode 100644 index 00000000..d54c9da3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070423-8.tar.bz2.README @@ -0,0 +1 @@ +Added luksopen and dm_crypt support. UNTESTED. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-1.tar.bz2 new file mode 100644 index 00000000..4d53ad3c Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-1.tar.bz2.README new file mode 100644 index 00000000..6e166f28 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-1.tar.bz2.README @@ -0,0 +1,2 @@ +Added acpid, removed luksopen currently from the dependency +list. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-2.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-2.tar.bz2 new file mode 100644 index 00000000..7af7167f Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-2.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-2.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-2.tar.bz2.README new file mode 100644 index 00000000..b45f2595 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070424-2.tar.bz2.README @@ -0,0 +1 @@ +Added support for the loopback device (network/loopback). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070425-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070425-1.tar.bz2 new file mode 100644 index 00000000..907f4bf1 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070425-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070425-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070425-1.tar.bz2.README new file mode 100644 index 00000000..0fa9cf4f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070425-1.tar.bz2.README @@ -0,0 +1,3 @@ +Added two more getties: getty/3 and getty/4 and added +them to init/needs. And yes, this configuration is in +use on my production system :-) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-01.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-01.tar.bz2 new file mode 100644 index 00000000..f91c0c58 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-01.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-01.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-01.tar.bz2.README new file mode 100644 index 00000000..80b538b3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-01.tar.bz2.README @@ -0,0 +1,3 @@ +Added unicode_start/stop and made it wants for gettys. +Added the sys-v-init-udev-script to init/wants, I am currently +to lazy to reimplement the whole udev bunch. Anyone else? ;-) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-02.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-02.tar.bz2 new file mode 100644 index 00000000..98454c86 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-02.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-02.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-02.tar.bz2.README new file mode 100644 index 00000000..78e81d56 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070503-02.tar.bz2.README @@ -0,0 +1 @@ +Sleep before kill decreased to 2. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070717-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070717-1.tar.bz2 new file mode 100644 index 00000000..1880c52d Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070717-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070717-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070717-1.tar.bz2.README new file mode 100644 index 00000000..740026e4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070717-1.tar.bz2.README @@ -0,0 +1 @@ +Added support for cpufreq (ondemand) on IBM T60. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-1.tar.bz2 new file mode 100644 index 00000000..f79a8ee6 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-1.tar.bz2.README new file mode 100644 index 00000000..bfc5c0ae --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-1.tar.bz2.README @@ -0,0 +1 @@ +- Added mount /proc as requirement for acpid! diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-2.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-2.tar.bz2 new file mode 100644 index 00000000..a2b8fdea Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-2.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-2.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-2.tar.bz2.README new file mode 100644 index 00000000..3493ca3d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070831-2.tar.bz2.README @@ -0,0 +1 @@ +- Added dmesg -n1 so there's less noise on startup. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-1.tar.bz2 new file mode 100644 index 00000000..8df7a9c9 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-1.tar.bz2.README new file mode 100644 index 00000000..cb6f8d8e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-1.tar.bz2.README @@ -0,0 +1,7 @@ +- Added needs: + unicode / console: /proc + udev: /proc + syslog-ng: mount/root + +- fixed mount/root/fsck: missed "then" + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-2.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-2.tar.bz2 new file mode 100644 index 00000000..33f75a62 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-2.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-2.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-2.tar.bz2.README new file mode 100644 index 00000000..07e6f29e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070901-2.tar.bz2.README @@ -0,0 +1 @@ +- Added respawn for syslog-ng diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070906-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070906-1.tar.bz2 new file mode 100644 index 00000000..e3b7df82 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070906-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070906-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070906-1.tar.bz2.README new file mode 100644 index 00000000..650274b7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070906-1.tar.bz2.README @@ -0,0 +1,2 @@ +Add TERM=linux to console-unicode and also depend it on udev so +devices are existing. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070909-1.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070909-1.tar.bz2 new file mode 100644 index 00000000..d8c7dd55 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070909-1.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070909-1.tar.bz2.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070909-1.tar.bz2.README new file mode 100644 index 00000000..f6d5eb89 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/denkbrett-20070909-1.tar.bz2.README @@ -0,0 +1 @@ +acpid needs to write to /var/run! diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/last b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/last new file mode 100755 index 00000000..f722a251 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/last @@ -0,0 +1,6 @@ +#!/bin/sh +umount -a +sync +# report, there should be nothing left +ps axuwww +umount -a diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/last.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/last.params new file mode 100755 index 00000000..ec169e3c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/last.params @@ -0,0 +1,3 @@ +#!/bin/sh +echo "This is the last command executed" +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/sleep_before_kill b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/sleep_before_kill new file mode 100644 index 00000000..7ed6ff82 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/sleep_before_kill @@ -0,0 +1 @@ +5 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/sleep_before_kill.README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/sleep_before_kill.README new file mode 100644 index 00000000..e9d11095 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/conf/sleep_before_kill.README @@ -0,0 +1,2 @@ +Test with 30 seconds sleep, that is really enough to see if it differs from +builtin 2 seconds. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/keyboard b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/keyboard new file mode 120000 index 00000000..d34736ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/keyboard @@ -0,0 +1 @@ +../.././../local-tuning/keyboard \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/mount-root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/mount-root new file mode 120000 index 00000000..5254b0c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/mount-root @@ -0,0 +1 @@ +/etc/cinit/svc/mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on new file mode 120000 index 00000000..43d48c29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on @@ -0,0 +1 @@ +/sbin/getty \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on.env b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on.env new file mode 100644 index 00000000..a7a61938 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on.env @@ -0,0 +1 @@ +TERM=linux diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on.params new file mode 100644 index 00000000..db1290b9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/on.params @@ -0,0 +1,2 @@ +38400 +tty1 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/wants/console-unicode b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/wants/console-unicode new file mode 120000 index 00000000..6d239a86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/wants/console-unicode @@ -0,0 +1 @@ +../../../local-tuning/console-unicode \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/wants/hostname b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/wants/hostname new file mode 120000 index 00000000..0daec325 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/1/wants/hostname @@ -0,0 +1 @@ +../../../network/hostname \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/keyboard b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/keyboard new file mode 120000 index 00000000..d34736ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/keyboard @@ -0,0 +1 @@ +../.././../local-tuning/keyboard \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/mount-root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/mount-root new file mode 120000 index 00000000..5254b0c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/mount-root @@ -0,0 +1 @@ +/etc/cinit/svc/mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on new file mode 120000 index 00000000..43d48c29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on @@ -0,0 +1 @@ +/sbin/getty \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on.env b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on.env new file mode 100644 index 00000000..a7a61938 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on.env @@ -0,0 +1 @@ +TERM=linux diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on.params new file mode 100644 index 00000000..bc8c9b28 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/on.params @@ -0,0 +1,2 @@ +38400 +tty2 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/wants/console-unicode b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/wants/console-unicode new file mode 120000 index 00000000..6d239a86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/wants/console-unicode @@ -0,0 +1 @@ +../../../local-tuning/console-unicode \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/wants/hostname b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/wants/hostname new file mode 120000 index 00000000..0daec325 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/2/wants/hostname @@ -0,0 +1 @@ +../../../network/hostname \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/keyboard b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/keyboard new file mode 120000 index 00000000..d34736ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/keyboard @@ -0,0 +1 @@ +../.././../local-tuning/keyboard \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/mount-root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/mount-root new file mode 120000 index 00000000..5254b0c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/mount-root @@ -0,0 +1 @@ +/etc/cinit/svc/mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on new file mode 120000 index 00000000..43d48c29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on @@ -0,0 +1 @@ +/sbin/getty \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on.env b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on.env new file mode 100644 index 00000000..a7a61938 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on.env @@ -0,0 +1 @@ +TERM=linux diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on.params new file mode 100644 index 00000000..7efd5e45 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/on.params @@ -0,0 +1,2 @@ +38400 +tty3 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/wants/console-unicode b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/wants/console-unicode new file mode 120000 index 00000000..6d239a86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/wants/console-unicode @@ -0,0 +1 @@ +../../../local-tuning/console-unicode \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/wants/hostname b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/wants/hostname new file mode 120000 index 00000000..0daec325 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/3/wants/hostname @@ -0,0 +1 @@ +../../../network/hostname \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/keyboard b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/keyboard new file mode 120000 index 00000000..d34736ff --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/keyboard @@ -0,0 +1 @@ +../.././../local-tuning/keyboard \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/mount-root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/mount-root new file mode 120000 index 00000000..5254b0c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/mount-root @@ -0,0 +1 @@ +/etc/cinit/svc/mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on new file mode 120000 index 00000000..43d48c29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on @@ -0,0 +1 @@ +/sbin/getty \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on.env b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on.env new file mode 100644 index 00000000..a7a61938 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on.env @@ -0,0 +1 @@ +TERM=linux diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on.params new file mode 100644 index 00000000..47e2d7a7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/on.params @@ -0,0 +1,2 @@ +38400 +tty4 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/wants/console-unicode b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/wants/console-unicode new file mode 120000 index 00000000..6d239a86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/wants/console-unicode @@ -0,0 +1 @@ +../../../local-tuning/console-unicode \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/wants/hostname b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/wants/hostname new file mode 120000 index 00000000..0daec325 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/getty/4/wants/hostname @@ -0,0 +1 @@ +../../../network/hostname \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/acpid b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/acpid new file mode 120000 index 00000000..88098497 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/acpid @@ -0,0 +1 @@ +../../local-services/acpid \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/eth0.dhcp b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/eth0.dhcp new file mode 120000 index 00000000..8d2c9b8d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/eth0.dhcp @@ -0,0 +1 @@ +../../network/eth0.dhcp \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-2 new file mode 120000 index 00000000..92f3bf2f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-2 @@ -0,0 +1 @@ +../../getty/2 \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-3 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-3 new file mode 120000 index 00000000..9c0aeaed --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-3 @@ -0,0 +1 @@ +../../getty/3 \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-4 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-4 new file mode 120000 index 00000000..7b967eed --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/getty-4 @@ -0,0 +1 @@ +../../getty/4 \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/keyboard b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/keyboard new file mode 120000 index 00000000..c4488690 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/keyboard @@ -0,0 +1 @@ +../../local-tuning/keyboard \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/loopback b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/loopback new file mode 120000 index 00000000..69fe6f89 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/loopback @@ -0,0 +1 @@ +../../network/loopback \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/rescue-shell b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/rescue-shell new file mode 120000 index 00000000..be06dd0a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/rescue-shell @@ -0,0 +1 @@ +../../rescue-shell \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/sysfs b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/sysfs new file mode 120000 index 00000000..67c524a9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/needs/sysfs @@ -0,0 +1 @@ +../../mount/sysfs \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/on new file mode 120000 index 00000000..7bbf7ccd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/on @@ -0,0 +1 @@ +/bin/echo \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/on.params new file mode 100644 index 00000000..6e271318 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/on.params @@ -0,0 +1 @@ +*** cinit successfully started *** diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/wants/quiet-kernel b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/wants/quiet-kernel new file mode 120000 index 00000000..8da32e9b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/wants/quiet-kernel @@ -0,0 +1 @@ +../../local-tuning/quiet-kernel \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/wants/udev b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/wants/udev new file mode 120000 index 00000000..9dfe9879 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/init/wants/udev @@ -0,0 +1 @@ +../../local-tuning/udev \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/README new file mode 100644 index 00000000..d5190e7e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/README @@ -0,0 +1 @@ +Load acpi drivers before we are started. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/acpi b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/acpi new file mode 120000 index 00000000..888ba93b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/acpi @@ -0,0 +1 @@ +../../../local-tuning/drivers/acpi \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/root new file mode 120000 index 00000000..b46717bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/needs/root @@ -0,0 +1 @@ +../../../mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/on new file mode 120000 index 00000000..43369f77 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/on @@ -0,0 +1 @@ +/usr/sbin/acpid \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/on.params new file mode 100644 index 00000000..105c5f3d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/on.params @@ -0,0 +1 @@ +-f diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/acpid/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/README new file mode 100644 index 00000000..628fab6a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/README @@ -0,0 +1,2 @@ +Metalog is a smart syslogd replacement and it does not fork +normally. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/needs/root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/needs/root new file mode 120000 index 00000000..b46717bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/needs/root @@ -0,0 +1 @@ +../../../mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/on new file mode 120000 index 00000000..54fdda86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/metalog/on @@ -0,0 +1 @@ +/usr/sbin/metalog \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/needs/clean-dev-log b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/needs/clean-dev-log new file mode 120000 index 00000000..515549d6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/needs/clean-dev-log @@ -0,0 +1 @@ +../../../local-tuning/clean-dev-log \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/needs/root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/needs/root new file mode 120000 index 00000000..b46717bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/needs/root @@ -0,0 +1 @@ +../../../mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/on new file mode 120000 index 00000000..099ec19b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/on @@ -0,0 +1 @@ +/sbin/syslog-ng \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/on.params new file mode 100644 index 00000000..ee1f6c5c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/on.params @@ -0,0 +1 @@ +-F diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-services/syslog-ng/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/README new file mode 100644 index 00000000..dd8ef91c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/README @@ -0,0 +1,5 @@ +Remove /dev/log from previous run, so syslog* (syslog-ng,metalog,syslogd) +can start. + +We're directly needed by the syslog variants, so if they are +not started, we are not started. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/needs/root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/needs/root new file mode 120000 index 00000000..b46717bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/needs/root @@ -0,0 +1 @@ +../../../mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/on new file mode 120000 index 00000000..3530dc46 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/on @@ -0,0 +1 @@ +/bin/rm \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/on.params new file mode 100644 index 00000000..6d8ffbb5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-dev-log/on.params @@ -0,0 +1,2 @@ +-f +/dev/log diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/README new file mode 100644 index 00000000..20ff9536 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/README @@ -0,0 +1 @@ +Remove the /etc/mtab, so it's in a clean state. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/needs/root-mount b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/needs/root-mount new file mode 120000 index 00000000..b46717bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/needs/root-mount @@ -0,0 +1 @@ +../../../mount/root \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/on new file mode 120000 index 00000000..3530dc46 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/on @@ -0,0 +1 @@ +/bin/rm \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/on.params new file mode 100644 index 00000000..fceff107 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/clean-mtab/on.params @@ -0,0 +1,2 @@ +-f +/etc/mtab diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/README new file mode 100644 index 00000000..fa12de87 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/README @@ -0,0 +1 @@ +Enable unicode on the Linux console. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/needs/udev b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/needs/udev new file mode 120000 index 00000000..45ebbd7c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/needs/udev @@ -0,0 +1 @@ +../../udev/ \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/off b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/off new file mode 120000 index 00000000..d1b3dabc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/off @@ -0,0 +1 @@ +/usr/bin/unicode_stop \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/on new file mode 120000 index 00000000..1a8ea15c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/on @@ -0,0 +1 @@ +/usr/bin/unicode_start \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/on.env b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/on.env new file mode 100644 index 00000000..a7a61938 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/console-unicode/on.env @@ -0,0 +1 @@ +TERM=linux diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/cpufreq_ondemand/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/cpufreq_ondemand/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/cpufreq_ondemand/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/cpufreq_ondemand/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/cpufreq_ondemand/on.params new file mode 100644 index 00000000..6999c48d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/cpufreq_ondemand/on.params @@ -0,0 +1 @@ +cpufreq_ondemand diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/cpufreq_ondemand b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/cpufreq_ondemand new file mode 120000 index 00000000..8d465d25 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/cpufreq_ondemand @@ -0,0 +1 @@ +../cpufreq_ondemand \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/speedstep-centrino b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/speedstep-centrino new file mode 120000 index 00000000..7a81f768 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/speedstep-centrino @@ -0,0 +1 @@ +../speedstep-centrino \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/sysfs b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/sysfs new file mode 120000 index 00000000..abdd5e9c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/needs/sysfs @@ -0,0 +1 @@ +../../../mount/sysfs \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/on new file mode 100755 index 00000000..9ded0cc1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/on @@ -0,0 +1,2 @@ +#!/bin/sh +echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/speedstep-centrino/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/speedstep-centrino/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/speedstep-centrino/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/speedstep-centrino/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/speedstep-centrino/on.params new file mode 100644 index 00000000..b0daf284 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/cpufreq/speedstep-centrino/on.params @@ -0,0 +1 @@ +speedstep-centrino diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/aes/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/aes/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/aes/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/aes/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/aes/on.params new file mode 100644 index 00000000..9ccaeece --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/aes/on.params @@ -0,0 +1 @@ +aes diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/dm_crypt/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/dm_crypt/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/dm_crypt/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/dm_crypt/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/dm_crypt/on.params new file mode 100644 index 00000000..d2a85215 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/crypto/dm_crypt/on.params @@ -0,0 +1 @@ +dm_crypt diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/README new file mode 100644 index 00000000..a8b1c282 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/README @@ -0,0 +1 @@ +Support for acpi ac information. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/on.params new file mode 100644 index 00000000..a9eb3bbf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ac/on.params @@ -0,0 +1 @@ +ac diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/README new file mode 100644 index 00000000..448a4a0b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/README @@ -0,0 +1 @@ +Support for acpi battery information. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/on.params new file mode 100644 index 00000000..37ac71bf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/battery/on.params @@ -0,0 +1 @@ +battery diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/README new file mode 100644 index 00000000..bda85f4c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/README @@ -0,0 +1 @@ +Support for acpi buttons. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/on.params new file mode 100644 index 00000000..ef3f216a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/button/on.params @@ -0,0 +1 @@ +button diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/README new file mode 100644 index 00000000..d9ad05c2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/README @@ -0,0 +1 @@ +Support for acpi fans. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/on.params new file mode 100644 index 00000000..6de1f525 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/fan/on.params @@ -0,0 +1 @@ +fan diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/README new file mode 100644 index 00000000..ff0f6f4a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/README @@ -0,0 +1 @@ +Extra functionality for my ibm t60. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/on.params new file mode 100644 index 00000000..80916c68 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/ibm_acpi/on.params @@ -0,0 +1 @@ +ibm_acpi diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/ac b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/ac new file mode 120000 index 00000000..4d2aefc1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/ac @@ -0,0 +1 @@ +../ac \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/battery b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/battery new file mode 120000 index 00000000..990e6bcd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/battery @@ -0,0 +1 @@ +../battery \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/button b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/button new file mode 120000 index 00000000..b99dcf7c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/button @@ -0,0 +1 @@ +../button \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/fan b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/fan new file mode 120000 index 00000000..7923f9b5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/fan @@ -0,0 +1 @@ +../fan \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/ibm_acpi b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/ibm_acpi new file mode 120000 index 00000000..d32add47 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/ibm_acpi @@ -0,0 +1 @@ +../ibm_acpi \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/thermal b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/thermal new file mode 120000 index 00000000..f2d6718c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/needs/thermal @@ -0,0 +1 @@ +../thermal \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/README new file mode 100644 index 00000000..da0b9c13 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/README @@ -0,0 +1 @@ +Support for acpi thermal information: temperature and fans. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/on.params new file mode 100644 index 00000000..a175d50f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/acpi/thermal/on.params @@ -0,0 +1 @@ +thermal diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/eth0/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/eth0/on new file mode 120000 index 00000000..722ec623 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/eth0/on @@ -0,0 +1 @@ +/sbin/modprobe \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/eth0/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/eth0/on.params new file mode 100644 index 00000000..9f318065 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/drivers/eth0/on.params @@ -0,0 +1 @@ +e1000 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/keyboard/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/keyboard/on new file mode 120000 index 00000000..a5ce029b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/keyboard/on @@ -0,0 +1 @@ +/bin/loadkeys \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/keyboard/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/keyboard/on.params new file mode 100644 index 00000000..1c96d177 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/keyboard/on.params @@ -0,0 +1 @@ +us diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/quiet-kernel/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/quiet-kernel/on new file mode 120000 index 00000000..09bd56b7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/quiet-kernel/on @@ -0,0 +1 @@ +/bin/dmesg \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/quiet-kernel/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/quiet-kernel/on.params new file mode 100644 index 00000000..d22a4869 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/quiet-kernel/on.params @@ -0,0 +1 @@ +-n1 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/needs/proc b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/needs/proc new file mode 120000 index 00000000..d9ee6dd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/needs/proc @@ -0,0 +1 @@ +../../../mount/proc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/on new file mode 120000 index 00000000..1ecced27 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/on @@ -0,0 +1 @@ +/etc/init.d/udev \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/on.params new file mode 100644 index 00000000..d44e18fb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/local-tuning/udev/on.params @@ -0,0 +1 @@ +start diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/README new file mode 100644 index 00000000..7d699823 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/README @@ -0,0 +1,3 @@ +Need to load keyboard layout before trying to decrypt. +I also need dm_crypt and the aes module, as both are not +compiled into my kernel. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/aes b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/aes new file mode 120000 index 00000000..15b8e7d6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/aes @@ -0,0 +1 @@ +../../../../local-tuning/crypto/aes \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/dm_crypt b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/dm_crypt new file mode 120000 index 00000000..9066e234 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/dm_crypt @@ -0,0 +1 @@ +../../../../local-tuning/crypto/dm_crypt \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/keyboard b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/keyboard new file mode 120000 index 00000000..34376346 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/needs/keyboard @@ -0,0 +1 @@ +../../../../local-tuning/keyboard \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/on new file mode 100755 index 00000000..a40f7a4f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/luksopen/on @@ -0,0 +1,5 @@ +#!/bin/sh +# read key until success +while true; do + cryptsetup luksOpen /dev/sda3 home && break +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/needs/luksopen b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/needs/luksopen new file mode 120000 index 00000000..f0585cf1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/needs/luksopen @@ -0,0 +1 @@ +../luksopen/ \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/on new file mode 120000 index 00000000..fb886059 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/on @@ -0,0 +1 @@ +/bin/mount \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/on.params new file mode 100644 index 00000000..05280cb0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/home.dm_crypt/on.params @@ -0,0 +1 @@ +/home diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/needs/clean-mtab b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/needs/clean-mtab new file mode 120000 index 00000000..0bea57c3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/needs/clean-mtab @@ -0,0 +1 @@ +../../../local-tuning/clean-mtab \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/on new file mode 120000 index 00000000..fb886059 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/on @@ -0,0 +1 @@ +/bin/mount \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/on.params new file mode 100644 index 00000000..4c3fcfb4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/proc/on.params @@ -0,0 +1 @@ +/proc diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/needs/udev b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/needs/udev new file mode 120000 index 00000000..3d36cb50 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/needs/udev @@ -0,0 +1 @@ +../../../../local-tuning/udev/ \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on new file mode 100755 index 00000000..ea236360 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on @@ -0,0 +1,17 @@ +#!/bin/sh +# Wrapper for fsck that returns 1 on success... +# Nico Schottelius +# 2007-05-25 +# for cLinux/cinit + +fsck=/sbin/fsck +dev="$1" + +"$fsck" "$dev" + +# return of 1 == repaired successful +if [ $? -gt 1 ]; then + exit 1 +fi + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on.old b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on.old new file mode 120000 index 00000000..2a85786a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on.old @@ -0,0 +1 @@ +/sbin/fsck.jfs \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on.params new file mode 100644 index 00000000..90020847 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/fsck/on.params @@ -0,0 +1 @@ +/dev/hda1 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/needs/fsck b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/needs/fsck new file mode 120000 index 00000000..c2e5e63f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/needs/fsck @@ -0,0 +1 @@ +../fsck \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/on new file mode 120000 index 00000000..fb886059 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/on @@ -0,0 +1 @@ +/bin/mount \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/on.params new file mode 100644 index 00000000..6a052263 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/root/on.params @@ -0,0 +1,4 @@ +-n +-o +remount,rw +/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/README b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/README new file mode 100644 index 00000000..e01cb66a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/README @@ -0,0 +1 @@ +Udev needs us. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/needs/clean-mtab b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/needs/clean-mtab new file mode 120000 index 00000000..0bea57c3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/needs/clean-mtab @@ -0,0 +1 @@ +../../../local-tuning/clean-mtab \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/on new file mode 120000 index 00000000..fb886059 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/on @@ -0,0 +1 @@ +/bin/mount \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/on.params new file mode 100644 index 00000000..a6b724ca --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/mount/sysfs/on.params @@ -0,0 +1,4 @@ +sysfs +-t +sysfs +/sys diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/needs/load-driver b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/needs/load-driver new file mode 120000 index 00000000..2c9afe03 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/needs/load-driver @@ -0,0 +1 @@ +../../../local-tuning/drivers/eth0 \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/needs/root b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/needs/root new file mode 120000 index 00000000..68ea58e3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/needs/root @@ -0,0 +1 @@ +../../../mount/root/ \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/on new file mode 120000 index 00000000..639430c4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/on @@ -0,0 +1 @@ +/sbin/udhcpc \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/on.params new file mode 100644 index 00000000..5f192cbc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/on.params @@ -0,0 +1,4 @@ +-f +-n +-i +eth0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/eth0.dhcp/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/hostname/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/hostname/on new file mode 120000 index 00000000..5779a119 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/hostname/on @@ -0,0 +1 @@ +/bin/hostname \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/hostname/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/hostname/on.params new file mode 100644 index 00000000..3614fe72 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/hostname/on.params @@ -0,0 +1 @@ +cinit-host diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/loopback/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/loopback/on new file mode 120000 index 00000000..e27843a4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/loopback/on @@ -0,0 +1 @@ +/sbin/ifconfig \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/loopback/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/loopback/on.params new file mode 100644 index 00000000..e58476c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/network/loopback/on.params @@ -0,0 +1,3 @@ +lo +127.0.0.1 +up diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/remote-services/sshd/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/remote-services/sshd/on new file mode 120000 index 00000000..cf9865a6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/remote-services/sshd/on @@ -0,0 +1 @@ +/usr/sbin/sshd \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/remote-services/sshd/on.params b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/remote-services/sshd/on.params new file mode 100644 index 00000000..eb11be00 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/remote-services/sshd/on.params @@ -0,0 +1 @@ +-D diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/on b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/on new file mode 120000 index 00000000..db1611f6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/on @@ -0,0 +1 @@ +/bin/sh \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/on.env b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/on.env new file mode 100644 index 00000000..54ba45f1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/on.env @@ -0,0 +1,2 @@ +TERM=linux +PATH=/sbin:/bin:/usr/sbin:/usr/bin diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/respawn b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/etc/cinit/svc/rescue-shell/respawn new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/rsync b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/rsync new file mode 100755 index 00000000..f9649179 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/rsync @@ -0,0 +1,2 @@ +chmod a+r * +rsync -av ./ nico@home.schottelius.org:unix/cinit/samples/cinit-0.3/denkbrett/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/rsync.local b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/rsync.local new file mode 100755 index 00000000..d7ee374b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/rsync.local @@ -0,0 +1,3 @@ +DIR=~nico/projekte/cinit/configs/denkbrett/ +rsync -av ./ "$DIR" +chown nico "$DIR"/* diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/test+conf-last-2007-02-23.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/test+conf-last-2007-02-23.tar.bz2 new file mode 100644 index 00000000..1b760767 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/test+conf-last-2007-02-23.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/test-2007-02-23.tar.bz2 b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/test-2007-02-23.tar.bz2 new file mode 100644 index 00000000..61cf45c1 Binary files /dev/null and b/software/cinit/browse_source/cinit-0.3pre19/doc/examples/cinit-0.3/denkbrett/test-2007-02-23.tar.bz2 differ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/cinit-conf.text b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cinit-conf.text new file mode 100644 index 00000000..0e86ec25 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cinit-conf.text @@ -0,0 +1,47 @@ +cinit-conf - helps to configure cinit +===================================== +Nico Schottelius +0.0.1, Initial version written on 20080418 in the Bus to Gossau + +cinit-conf aims to be a suite to help to configure cinit and +migrate systems to cinit. + +Introduction +------------ +`cinit` is a fast init system with dependency features and +profile support. As `cinit` is not widely known and it is quite +different in its approach compared to traditional init systems, +the configuration is also quite different. + +To make life easier for people to migrate to and manage `cinit`, +this project was started. + +If you use `cinit-conf`, please send feedback to me using `report_success.sh`. + + +What can it do? +~~~~~~~~~~~~~~~ +.In its current state, `cinit-conf` can +- add getties on Linux (bin/cinit-conf.getty.add) +- find its configuration directory (bin/cinit-conf.get-confdir) + + +What should it can do? +~~~~~~~~~~~~~~~~~~~~~~ +Much more ;-) + +.Also known as features planned, but not implemented. +- Migrate complete installations +- Provide a big toolset to be used by humans and in scripts +- Make your life easier, because you are able to use `cinit` + + +Wherefore can I use it? +~~~~~~~~~~~~~~~~~~~~~~~ +Currenty only to add a getty, but more features will follow soon. + + +How to use +---------- +Execute ./bin/cinit-conf.getty.add. + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/cinit.text b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cinit.text new file mode 100644 index 00000000..19d0015a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cinit.text @@ -0,0 +1,64 @@ +cinit(8) +======== +Nico Schottelius + + +NAME +---- +cinit - fast executing, small and simple init with support for profiles + + +SYNOPSIS +-------- +'cinit' [cprofile:name_of_profile] + + +DESCRIPTION +----------- +Cinit is an init system. It normally gets started by the operating +system (Linux, *BSD, ...) directly after the kernel has been loaded. + +Cinit uses parallel execution of services as far as possible. To +ensure the correct boot order you need to specify which service +'needs' or 'wants' another service. The resulting dependency tree +is used at startup to determine which service to start when. + +This may result in different boot orders depending on whether +one service is one time faster or slower. Due to the dependencies +this is not a problem, but allowed and wished per design. + +For more information refer to the texinfo or html documentation. + + +OPTIONS +------- + +cprofile:name_of_profile:: + If specified, cinit will start the named profile instead of the + standard 'init' service + + +BUGS +---- +cinit is not tested nor documented very well currently. + +The porting to other OS is not finished yet (mainly missing +system level binaries: shutdown, reboot, halt). + +Both is work in progress. + + +AUTHOR +------ +Nico Schottelius + + +RESOURCES +--------- +Main web site: http://unix.schottelius.org/cinit/[] + + +COPYING +------- +Copyright \(C) 2006 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License (GPL). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/cmd.text b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cmd.text new file mode 100644 index 00000000..b834fabf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cmd.text @@ -0,0 +1,89 @@ +cmd(8) +====== +Nico Schottelius + + +NAME +---- +cmd - cinit management and information tool + + +SYNOPSIS +-------- +'cmd' [-ed (i|w|n)] [-(p|s) ] [-v] + + +DESCRIPTION +----------- +cmd adds the management possibility to cinit(8). You can retrieve +several information from cinit and change services. + +OPTIONS +------- +-d:: + Disable service (see below for required parameters) + (NOT YET IMPLEMENTED) + +-e:: + Enable service + - i: Included all needs and wants + - n: Exclude needs + - w: Exclude wants + (NOT YET IMPLEMENTED) + +-p:: + Retrieve last process id (pid) for the specific service. For respawn + services this is the pid of the running service. For services that are + started only once it is the pid it had when running. + (NOT YET IMPLEMENTED) + +-s:: + Retrieve status of a service. Warning: Do not add trailing slash. + Path can be specified absolute (/etc/cinit/svc/mount/root) or + relative (mount/root). + +-v:: + Get version of cinit. + +-V:: + Get version of cmd. + + + +EXAMPLES +-------- +Get version:: + [8:44] denkbrett:src# cmd -v + + Version of cinit: 0.3pre12 + +Get status:: + [8:37] denkbrett:src# ./cmd -s mount/root + + Status of /etc/cinit/svc/mount/root is: 2001 + + +EXIT STATUS +----------- +Cmd returns 0 on success, 1 on user errors, 2 on communication errors and +3 on unknown reason errors. + +BUGS +---- +Not everything is implemented. + + +AUTHOR +------ +Nico Schottelius + + +RESOURCES +--------- +Main web site: http://unix.schottelius.org/cinit/[] + + +COPYING +------- +Copyright \(C) 2007 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License Version 3 (GPLv3). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/cservice b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cservice new file mode 100644 index 00000000..26a472b8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/cservice @@ -0,0 +1,37 @@ +WARNING: + cservice is not yet ready for cinit-0.3! + +-------------------------------------------------------------------------------- +cservice, +Nico Schottelius, 2005-06-10 (Last Modified: 2005-06-22) +-------------------------------------------------------------------------------- + +cservice - control cinit + +cservice -[phearsu] + -e - (ein) start a service (including all needed dependencies) + -a - (aus) stop a respawing service, don't care about other services + + -r - reboot + -h - halt + -p - poweroff (on some systems the same as halt) + -s - reScue mode - only a shell + + -u - update: hot reboot - shutdown system and execute /sbin/cinit + +A service may be specified either as relative or as absolute path. + +-h, -p, -r, -s and -u need the "Magic Word" to do their work: "thilo" + +-------------------------------------------------------------------------------- + +Some examples: + + cservice -e /etc/cinit/getty/8 # fire up getty/8 + cd /etc/cinit/getty; cservice -a ./8 # shut down getty/8 + cservice -h thilo # halt + cservice -r thilo # reboot + cservice -s thilo # rescue + cservice -u thilo # update + +-------------------------------------------------------------------------------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/halt.kill.text b/software/cinit/browse_source/cinit-0.3pre19/doc/man/halt.kill.text new file mode 100644 index 00000000..4a31e257 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/halt.kill.text @@ -0,0 +1,46 @@ +halt.kill(8) +============ +Nico Schottelius + + +NAME +---- +halt.kill - Halts systems running cinit through a kill call + +SYNOPSIS +-------- +'halt.kill' + + +DESCRIPTION +----------- +You normally halt your system through 'cmd'. If cmd is unavailable or +the IPC system has problem there is still the possibilty to halt +it through a signal. See 'src/include/signals.h' for more details which +signals are used. + +OPTIONS +------- + +none:: + No options are used, If you execute halt.kill, your system will be halted. + + +AUTHOR +------ +Nico Schottelius + + +RESOURCES +--------- +Main web site: http://unix.schottelius.org/cinit/[] + +SEE ALSO +--------- +cmd(8) + + +COPYING +------- +Copyright \(C) 2007 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License (GPL). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/poweroff.kill.text b/software/cinit/browse_source/cinit-0.3pre19/doc/man/poweroff.kill.text new file mode 100644 index 00000000..62807ba1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/poweroff.kill.text @@ -0,0 +1,47 @@ +poweroff.kill(8) +================ +Nico Schottelius + + +NAME +---- +poweroff.kill - Halts and powers off systems running cinit through a kill call + +SYNOPSIS +-------- +'poweroff.kill' + + +DESCRIPTION +----------- +You normally poweroff your system through 'cmd'. If cmd is unavailable or +the IPC system has problem there is still the possibilty to poweroff +it through a signal. See 'src/include/signals.h' for more details which +signals are used. + +OPTIONS +------- + +none:: + No options are used, If you execute poweroff.kill, your system will be + powered off. + + +AUTHOR +------ +Nico Schottelius + + +RESOURCES +--------- +Main web site: http://unix.schottelius.org/cinit/[] + +SEE ALSO +--------- +cmd(8), halt.kill(8), reboot.kill(8) + + +COPYING +------- +Copyright \(C) 2007 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License (GPL). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/man/reboot.kill.text b/software/cinit/browse_source/cinit-0.3pre19/doc/man/reboot.kill.text new file mode 100644 index 00000000..a748553e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/man/reboot.kill.text @@ -0,0 +1,47 @@ +reboot.kill(8) +============== +Nico Schottelius + + +NAME +---- +reboot.kill - Reboots systems running cinit through a kill call + +SYNOPSIS +-------- +'reboot.kill' + + +DESCRIPTION +----------- +You normally reboot your system through 'cmd'. If cmd is unavailable or +the IPC system has problem there is still the possibilty to reboot +it through a signal. See 'src/include/signals.h' for more details which +signals are used. + +OPTIONS +------- + +none:: + No options are used, If you execute reboot.kill, your system will be + rebooted. + + +AUTHOR +------ +Nico Schottelius + + +RESOURCES +--------- +Main web site: http://unix.schottelius.org/cinit/[] + +SEE ALSO +--------- +cmd(8), halt.kill(8), poweroff.kill(8) + + +COPYING +------- +Copyright \(C) 2007 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License (GPL). diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.1 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.1 new file mode 100644 index 00000000..d875ff2d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.1 @@ -0,0 +1,4 @@ +- initial release: show the project +- add gpl3 header to all scripts in bin/ +- add README +- add some todos diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.1.1 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.1.1 new file mode 100644 index 00000000..34999cb8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.1.1 @@ -0,0 +1,6 @@ +- make it possible to migrate a Debian Lenny +- continue rename cinit.* to cinit-conf.* + * migration from cinit-bin +- fixup inclusion +- add more helper scripts +- add report_success.sh diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2 new file mode 100644 index 00000000..9b5c3496 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2 @@ -0,0 +1 @@ +- make it possible to migrate a Debian (Lenny): basic (without everything, make it run) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2.1 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2.1 new file mode 100644 index 00000000..117995bc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2.1 @@ -0,0 +1 @@ +- add manpages diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2.2 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2.2 new file mode 100644 index 00000000..d359b248 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.2.2 @@ -0,0 +1,3 @@ +- remove calls to dirname! + . "$(dirname $0)/cinit-conf.read-conf" + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3 new file mode 100644 index 00000000..4f27dd34 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3 @@ -0,0 +1 @@ +- make bla_dir and bladir consistent diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre11 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre11 new file mode 100644 index 00000000..ec532269 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre11 @@ -0,0 +1,10 @@ +Done: +- cleanup ipc: + merge cinit_ipc_logon() and cinit_ipc_connect()? + => already done! +- finish cmd in general, perhaps only including one command. +[18:51] denkbrett:src# LANG=C cp cinit /sbin/cinit +cp: cannot create regular file `/sbin/cinit': Text file busy + => mv & cp! + => documentation! + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre12 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre12 new file mode 100644 index 00000000..edbe41d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre12 @@ -0,0 +1,41 @@ +Wished release date: 6/7. September + +-------------------------------------------------------------------------------- +Done: +- begin to write documentation about client functions + => noone needs that anyway. skip and concentrate on functions now. + +cleanup ipc! + where to call !cinit_ipc_logon and !cinit_ipc_connect? + +-------------------------------------------------------------------------------- +Add +Hallo, + +Liebster Nico, wuerdest du die dazu durchringen "make install" und +vllt. sogar "make install-test" in die cinit 0.3er branch aufnehmen? + +vlg Lucky + ==> added make install in previous releases, make test maybe come back + later again. +- cleanup communication: + put parts of comm.h into cinit.h => global exposure + or define new structure in cinit.h? + => removed comm.h +- check svc path in cmd: if it's relative, add /etc/cinit/svc to it + => added. +- add update for git => so cloning does not fail! + => added hook. +Use http://www.opengroup.org/onlinepubs/009695399/basedefs/stdint.h.html + => partly implemented + +- remove manual pid support, use the one supplied by msgctl() + => ok. +- there seems to be a race condition in the execution of the + dependency tree: it happens that services that depend on + mounted /proc, have needs on mount/proc are still exited + before /proc is mounted. + problem of cinit or of mount, exiting too early? + guess the first one, so fix it :-) + + => missing check in svc_needs_status.c diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre13 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre13 new file mode 100644 index 00000000..ff8d4296 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre13 @@ -0,0 +1,19 @@ +Wished released date: 10./11. September + +-------------------------------------------------------------------------------- +Done: +- add get_svc_pid() +- cleanup msgq.h: namespace! +- cleanup cmd: add real usage, add -h for help +- cleanup cinit_ipc_logon()! [already done before] +- cleanup headers: ==> not yet needed. + seems to make more sense, to have more than one exposed header. + cinit.h gets to fast too big. so splitoff to: + /* main */ + /* ... */ +- create libcinit.a/so and link against it => not need right now. +- pre12 seems to have an IPC problem: Fix it. ==> problem with not finishing cinit startup +- global symbol to track the connection to cinit in the client + => cinit_ipc_cinit() - initalise ipc in the client (only once) + => not really our problem, client should be able to remember + whether she called us once or twice. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre13.race-condition b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre13.race-condition new file mode 100644 index 00000000..19bea29a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre13.race-condition @@ -0,0 +1,12 @@ +09:49 < telmich> is it possible, that if I fork() and call _exit(0) in the child, that the + _exit(0) is executed earlier than the fork() call returns in the parent? +09:49 < telmich> I'm having some race condition in cinit, where the pid is not yet updated in + the service structure, and the child exited before and thus cinit does not + update the service +09:49 < telmich> as being run +09:51 < telmich> rexy_: currently I'm thinking about implementing a lock before starting the + fork() +09:51 < telmich> rexy_: thus cinit will react differently, if the starting function is still + running +09:51 < telmich> rexy_: but I'm somehow confused, that fork() allows such race condition + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre14 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre14 new file mode 100644 index 00000000..e002d60c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre14 @@ -0,0 +1,3 @@ +Wished release date: 13. September +- add support for shutting down services + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre15 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre15 new file mode 100644 index 00000000..8f81446a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre15 @@ -0,0 +1,62 @@ +Wished release date: 20. September +- Add support for starting/stoping services via cmd + - add support for additional information (like which services stopped + when having dependencies) + - if cinit has to stop / start others, how to report? + - add strings to cinit internally to a buffer? + -> or struct cinit_answer + status + +- add support to enable services + +- create some boot profiles +- cinit.install.standard.dirs.argv +- code check: + * check needs: + really started, after started or after finished starting? + * wants: + are they checked? + +- fix devel/codingguideline.text! + +- perhaps merge svc_need_status to svc_status + +cinit-communication: + cinit_get_failed_needs(char *name, int *cnt); +- add support for shutting down services on halt +- cleanup msgq/cinit_ipc_listen.c +- move logic out of the child handler: + => use the new while()-loop in core/cinit.c! + + time() and co. are problematic in a child handler! + + introduce global list of services to execute + => perhaps reuse already existing dependency-list? + + tree_exec(): check whether adding something to the dep list hurts + => don't think so. + expand / change ipc handler: + make it return the message + move while() loop to core/cinit.c + + in the while loop, the global dependency list should + be empty. + + if it is not, we should start something. + + => chance cinit_ipc_listen() to use without while() loop + => export logic to core/cinit.c +- map status numbers to messages +- Cleanup doc/user/NEW_using_cinit_freebsd + => make a real document! +- write / update manpage for cmd! +- add sleep() support after service exited. + +-------------------------------------------------------------------------------- +Done: +- add minimal test-suite: + cmd -s /etc/cinit/svc/init + cmd -p /etc/cinit/svc/init + cmd -v + cmd -V +- change to GPLv3? + => ask Markus (cinit), Killerfox (cconfig) and Peter (cconfig) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre16 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre16 new file mode 100644 index 00000000..16e6efb5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre16 @@ -0,0 +1,9 @@ +Wished release date: 27. September +- check porting code: + * advise users to set conf/os + * add uname -r | tr ... as make osconfig +- check that all parts of cinit compile at least under: + * linux, linux on 64bit + * FreeBSD + * NetBSD +- cleanup output diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre17 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre17 new file mode 100644 index 00000000..82976e37 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre17 @@ -0,0 +1,11 @@ +Wished release date: 3. October + +"Code quality assurance release" + +- Fix bugs all outstanding bugs. +- Give cinit some time, write some documentation and make pre17 the last pre of the 0.3 + serie. +- Give the code out to other developers, request explicit strong critics + => So even + "This could be in theory, if Mars is behind Pluto on Sunday evening" bugs + are out. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre18 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre18 new file mode 100644 index 00000000..d02aac8c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre18 @@ -0,0 +1,3 @@ +- add support to manually set status of a service: + cmd -s respawn, failed, once, ... +- make get status = -g diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre19 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre19 new file mode 100644 index 00000000..2e4dfe15 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.3pre19 @@ -0,0 +1,4 @@ +- enable fast shutdown: + - ignores services and jumps directly to conf/last +- enable ultrafast shutdown + - even skips conf/last diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.4 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.4 new file mode 100644 index 00000000..3b772d4c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.4 @@ -0,0 +1,44 @@ +-------------------------------------------------------------------------------- +Clean service status messages: + Ausgaben nach Beendigung vom Starten des Services. + + [ on ] %s + Ergebnis + [ off ] %s +-------------------------------------------------------------------------------- +16:13 < KillerFox> telmich: hast du eigentlich schon hooks in cinit? +20:07 < KillerFox> Vapier führt mal wieder Selbstgespräche. +23:39 < telmich> KillerFox: wozu? +23:42 < KillerFox> telmich: es wäre durchaus interessant, um z.B. sterbende Prozesse wieder zu + starten und so. +23:42 < KillerFox> oder einen Hinweis per Mail zu verschicken. +23:43 < telmich> ahh, du meinst so benachrichtigungen von cinit an $prozess? +23:43 < KillerFox> jein +23:43 < KillerFox> du machst z.B. /etc/cinit/hooks/ +23:43 < KillerFox> darin gibts dann Scripte die bei bestimmten Ereignise aufgerufen werden. +23:43 < KillerFox> z.B. wenn ein Prozess stirbt +23:44 < KillerFox> du kannst dir natürlich auch überlegen, es auf Prozessebene herunter zu + hacken +23:44 < telmich> ja, eher letzeres +23:44 < KillerFox> so könnte man auch ein paar nette Sachen machen. z.B. Aufräumarbeiten + nachdem ein Prozess beendet wurde oder so +23:45 < KillerFox> telmich: ich finde beides Sinnvoller +23:45 < KillerFox> telmich: globale und lokale Hooks +23:45 < KillerFox> lokale überschreiben globale oder so +23:45 < telmich> oder laufen beide +23:45 < KillerFox> oder man kaskadiert sie. +23:45 < KillerFox> genau +23:46 < KillerFox> sinnvolle hooks: pre-start, start, post-start, pre-stop, stop, post-stop, + crash +23:46 < KillerFox> oder sowas +23:47 < KillerFox> vielleicht fallen dir noch mehr ein. +23:48 < KillerFox> die Kommunikation könnte man dann wahlweise über Parameter oder + Umgebungsvariablen lösen +23:48 < KillerFox> um z.B. mitzuteilen welcher Prozess gestoppt wurde +23:49 < KillerFox> z.B. wenn man in pre-stop je nach Bedingung den Stop-Vorgang abbrechen will. +23:49 < telmich> via ${ipc} => kommt darauf an, was implementiert ist; zZ ist es ja msgq +23:50 < telmich> ahh, so +23:50 < telmich> das waere noch recht trivial ueber pipes +23:50 < KillerFox> fifos/sockets, was auch immer. +23:50 < KillerFox> das müsste man dann mit einer Bibliothek lösen oder so +23:50 < telmich> ja, die ist auch im aufbau in libcinit/ + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.4.1 b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.4.1 new file mode 100644 index 00000000..b0d7685d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/0.4.1 @@ -0,0 +1,2 @@ +- Generate automatic asciidoc from conf/* + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/todo/long_list b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/long_list new file mode 100644 index 00000000..ec11f18d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/todo/long_list @@ -0,0 +1,21 @@ +Code +---- + +Performance +~~~~~~~~~~~ + +- Perhaps replace malloc for path with static buffer? + +Compatibility +~~~~~~~~~~~~~ +- create migration scripts + +Usage +~~~~~ +- Aid in debugging cinit-configuration (check without reboot) +- Integrate into OS package system + +Other +~~~~~ +- add log support to shm +- Check and clean doc/: Remove *TODO*+ROADMAP and leave behin doc/TODO (or ditz) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/FAQ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/FAQ new file mode 100644 index 00000000..53494f73 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/FAQ @@ -0,0 +1,35 @@ +-------------------------------------------------------------------------------- +FAQ - Frequently asked questions, +Nico Schottelius, 2005-06-05 (Last Modified: 2005-06-12) +-------------------------------------------------------------------------------- + +Q: So, what's good in cinit? +A: Fast executing, clean design, parallel execution, profile support, + small binary size (~50KiB static against uclibc), easy configuration, + just to name the main facts. + +Q: How do I start cinit? +A: You don't start cinit directly, but your kernel does. + Please have a look at your system documentation how to tell your kernel + to load /sbin/cinit as init. You'll also find some examples in + the README file. + +Q: What is /etc/cinit/init used for? +A: The init service is not just a placeholder, it is the beginning of + executing services. + +Q: /etc/cinit/init seems not to be used when I use profiles? +A: That's true. When you select a profile, cinit will begin in this + directory: "cprofile:home" will use /etc/cinit/home as starting + point. + +Q: Why does it take so long before my getty is respawned? +A: cinit only waits 5 seconds (see conf/sleep_svc), if + a) a service didn't exit normally + b) the service had a non-zero exit code + + So fixing the problem would mean fixing your getty / shell. + +Q: I am using a tarball from samples/ and there is no getty on tty1!? +A: That's true, the first console is used for logging purpose in the + examples. You still have six console (tty2-tty7) running getty. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/README.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/README.text new file mode 100644 index 00000000..3467ba63 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/README.text @@ -0,0 +1,21 @@ +cinit/doc/devel +=============== +Nico Schottelius +0.1, Initial Version from 2006-07-09 +:Author Initials: NS + +This directory contains cinit user documents. + +Introduction +------------ +This file describes the related documents in the current directory. + +Who should read those documents? +-------------------------------- +People using cinit. + +Content +------- + +hints.text: Some general hints +tuning.text: Some tuning hints diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/TODO b/software/cinit/browse_source/cinit-0.3pre19/doc/user/TODO new file mode 100644 index 00000000..6044e97a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/TODO @@ -0,0 +1,4 @@ +All the content in this file is unsorted. Reading may harm you. + +Confdir: /etc/cinit/conf/ +panic: /etc/cinit/conf/panic, /etc/cinit/conf/panic.params diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/compiles.on.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/compiles.on.text new file mode 100644 index 00000000..ad467d38 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/compiles.on.text @@ -0,0 +1,19 @@ +cinit - known configurations cinit compiles on +============================================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2006-12-08 +:Author Initials: NS + + +This document lists all the configuration known to me on that +cinit compiles. If you compiled cinit with another configuration, +drop a mail to nico-cinit-report [at] schottelius.org. + +The list +-------- +cinit is known to compile on: + +- x86-Linux-Debian-3.0-gcc-4-glibc-2.3.2 +- x86-Linux-Debian-3.0-gcc-3.4.3-glibc-2.3.5 +- ppc-Linux-Gentoo-2004.3-gcc-3.4.3-glibc-2.3.5 +- ppc-Linux-Gentoo-2004.3-gcc-3.4.3-uclibc-0.9.27 diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/conf-system.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/conf-system.text new file mode 100644 index 00000000..600112c3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/conf-system.text @@ -0,0 +1,34 @@ +The conf/ system +================= +Nico Schottelius +0.1, for cinit 0.3, Initial version from 2006-12-08 +:Author Initials: NS + +This documentes describes the configuration system used by cinit. + + +What is the conf/ system? +------------------------- +The conf/ system is the configuration system for the cinit build. +The first line of each file below conf/ is a configuration value +with the name of the file: + +---------------------------------------------------------------------- +[9:00] hydrogenium:cinit-0.3pre6% head -n 1 conf/cc +gcc +---------------------------------------------------------------------- + +This means that the variable "cc" has the value "gcc". + + +What is the reason for conf/? +----------------------------- +I needed a small and simple configuration system, which may be included +in the full build process. + + +Is conf/ also usable for other projects? +---------------------------------------- +In its current state conf/ is just a prototype, with which I experiement +a lot. But it is possible that the future aim is to provide a simele +configuration and autoconfiguraton mechanism. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/configuring.cinit.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/configuring.cinit.text new file mode 100644 index 00000000..8e45937d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/configuring.cinit.text @@ -0,0 +1,337 @@ +cinit - Configuring +=================== +Nico Schottelius +0.1, for cinit 0.3, Initial version from 2005-05-28 +:Author Initials: NS + + +This documentes describes how to configure cinit. +You should already have cinit installed, otherwise read +"cinit - Installing" first. + + +Less is more +------------ +In contrast to a lot of other init system configurations, the +cinit configuration is not a "catch all", but more a "minimalistic" +configuration: I don't think it's wise to include support for +exotic configurations and a lot of if/else combinations in an init +system configuration. These if/else should be solved at the configuration +time, *not* everytime at boot! + + +General configuration layout +---------------------------- +Cinit uses the <<>> configuration syntax, which means that +the configuration is kept as simple as possible. The following +sections will show you what that means. + +The cinit configuration consists of +- a special configuration directory +- and the service definitions. + +Paths +----- +Normally the configuration is kept below '/etc/cinit' +(though you can change this before compiling in conf/cinit_dir). + +The full description of the path layout of cinit and how to change it +can be found in 'paths.text'. + +Conf +---- +The special configuration directory is normally called `conf/` +(defined at compile-time in `conf/c_confdir`). + +For all executables into this directory apply the same rules as mentioned +below in "Execution: on and off": Appened .params specifies parameters, +appended .env specifies environment. + + +conf/last +~~~~~~~~~ +This is the last part that will be executed. After it has finished, cinit +will halt, power-off or reboot your machine. + +You can use it for whatever task to accomplish (as most things of cinit), but +the idea behind it is to use it for cleaning up things that are not covered +by the off parts of the services. This maybe swapoff (although this is an unecessary +call before poweroff, imho and even if needed this could be handled within the +off part of the same services that enabled it) or `umount -a` for everything +manually mounted and not unmounted yet. + + +conf/sleep_before_kill +~~~~~~~~~~~~~~~~~~~~~~ +This file contains just one line: The number of seconds to sleep after SIGTERM was sent +to every remaining process before sending SIGKILL to all processes. If this file +is unreadable or not existent, cinit will fall back to the value compiled in +(which was specified at build time in conf/sleep_kill). + + +Services +-------- +cinit is service based. Other init systems use shell +scripts (for instance /etc/rc, /etc/init.d/rc as starters +and /etc/rc*.d/* as "service definitions"). + +'current-init-problems.text' explains why cinit does *not* +use nor recommends the use of shell scripts. + +A service is simply a directory. This directory contains information about + +- what should be started when starting the service +- what should be started when stoping the service +- what dependencies the service has +- whether to restart it, when it exits + + +Full service definition +~~~~~~~~~~~~~~~~~~~~~~~ +. A service consists of + - a base directory (like /etc/cinit/svc/mount/root/) + - dependency configuration (`needs` and `wants`) + - start/stop programs (`on` and `off`) + - respawn flag (`respawn`) + + +Base directory +^^^^^^^^^^^^^^ +You can create the base directory everywhere below /etc/cinit/svc. +You may and it is recommened to create a directory structure +(see 'example-directory-structure.text'). + + +Dependencies +^^^^^^^^^^^^ +The subdirectories + +- `wants` +- and `needs` + +contain the dependencies for the service. + +Read 'dependencies.text' for more information. + + +Respawning +^^^^^^^^^^^ +If you create the empty file 'respawn' (adjustable via conf/c_respawn) +the service will be restarted after it exits. + +-------------------------------------------------------------------------------- +# Tell cinit to respawn the eth0.udhcpc service +touch /etc/cinit/svc/network/eth0.udhcpc +-------------------------------------------------------------------------------- + + +Execution: on and off +^^^^^^^^^^^^^^^^^^^^^ +When a service starts, the file `on` in the service +directory is executed. It is ok, if this file is not existing. +When a service stops, the file `off` in the service +directory is executed. + +The file with the extension `.params` is used to specify the arguments +to pass. Each line contains exactly one parameter. + +The file with the extension `.env` is used to specify the environment +to pass. Each line contains exactly one variable definition in the form +'variable=value'. + +. The following six files are possibly used on starting/stoping: + - ./on (the program called on startup) + - ./on.params (the parameters to pass to the program, see conf/c_params) + - ./on.env (the environment to pass to the program, see conf/c_env) + - ./off (the program called when shutting down the service) + - ./off.params (the parameters to pass to the program) + - ./on.env (the environment to pass to the program) + +Some examples: +---------------------------------------------------------------------- + /etc/cinit/svc/init: + ./wants -> services it wants + ./needs -> services it needs +---------------------------------------------------------------------- + +A more or less normal service without dependencies: +---------------------------------------------------------------------- + /etc/cinit/testsvc: + on -> link to program + on.param -> parameters to program + respawn -> restart it +---------------------------------------------------------------------- + +A service with all options used: +---------------------------------------------------------------------- + /etc/cinit/fullsvc: + on -> program to start when switching on + on.params -> parameters to pass to start program + on.env -> environment to pass to start program + + respawn -> respawn service + + off -> program to start when switching off + off.params -> parameters to pass to stop program + off.env -> environment to pass to stop program + + wants/* -> services it wants before starting (non-critical ones) + needs/* -> links to needed services (critical!) before starting +---------------------------------------------------------------------- + + +Profiles +-------- +Profiles allow you to define different startup scenarios and select +those before bootup. Read 'profiles.text' for more information about +profiles. + +The profile support was added in cinit-0.0.6. + + +Service execution order +------------------------ +The first service executed is '/etc/cinit/svc/init'. +If a profile is selected '/etc/cinit/svc/`profilename`' is used +instead. + +Cinit builds a full service dependency tree through the `wants` +and `needs` of the first service and its dependencies +(recursively). + +After the tree is generated, cinit begins to start the services +at the end of the tree. These services have no `needs`. + +If you manage to create circular dependencies your system will not startup. +You can verify the correctness your configuration with the script +`cinit.check.config`. + + +Hints +----- + +Service executing / parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The on and off files can and should be links to the programs you want +to execute instead of a shell script. This way you save yourself the overhead +of loading a shell. The speed enhancement is very big if you have shells +like bash installed as /bin/sh (which is *not* senseful anyway, I would +recommend dash or ksh for /bin/sh). + +The on.params and off.params files could also be links to system configuration: + +Assume the service is called local-tuning/keyboard. +The service could look like this: +---------------------------------------------------------------------- + on -> /bin/loadkeys + on.params -> /etc/sys/keyboard.mapping + + And /etc/sys/keyboard.mapping would contain only the string + "dvorak" (or "de-latin1" or "sg-latin1" or ...). +---------------------------------------------------------------------- + + +Daemons +~~~~~~~~ +Daemons are programs that go away to the background (using fork()) after +start). + +The fork-away strategy seems to be some illness introduced by traditional +init systems, that are dependent on the fact, that a process exits on +startup. + +cinit in contrast remembers the process ID (pid) of the services it +restarts (those with `respawn` enabled). + +So when the daemon fork()s away and the parent process exits it looks to +cinit like the watched service died and cinit will restart it. + +Happily, most processes can be taught not to go to background. +Some processes even do that by default and very less are broken that +one cannot tell them not to background. + +A list of known processes that are normally used in respawn +processes can be found in 'daemons.backgrounding.text'. + +If your process is not listed in `daemons.backgrounding.text', +check the documentation of your daemon program, if may have a +switch to disable forking. + +But, with a small hack it is even possible to respawn those broken processes: + +We start a program, that + - starts the daemon, + - monitors the pidfile of the daemon, + - waits until that pid does not exist anymore + - and then exits. + +Such a program is included into the cinit source tarball, +though I do not recommend using it. The better way is to implement +non forking mode into your process. + +The name of the program (actually a shell script) is 'cinit.wait.for.daemon'. + +You can use it as the `on` part of a service and add + + - the pidfile, + - the process binary + - and the process parameters + +to `on.params`. + +Thus the service could look like: +---------------------------------------------------------------------- + svc-broken-daemon/ + on -> /sbin/cinit.wait.for.daemon + on.params: + /var/run/apache.pid + /usr/packages/apache-2.0.51/bin/httpd + -DSSL +---------------------------------------------------------------------- +(This is not a so good example, because Apache supports non-forking mode). + +Be aware: This is just a hack, first try to avoid backgrounding +and you won't need this hack! + + +Logging +~~~~~~~ +Currently there's no special logging support. +When a process writes to stdout, it will be displayed on +the same stdout cinit is connected to. + +In newer versions cinit (perhaps cinit-0.4) will also support logging +stdout and stderr of a service. + + +How to migrate your old init-system configuration to cinit +---------------------------------------------------------- +This is highly dependent on your actual system, your system +configuration and your own ideas. + +Cinit is able to replace all other init systems I know about. + +So the only question is "How to do it?". + +There are some hints on how to migrate to cinit in general and also +some os specific help in the file 'migrating-init-systems.text', + + +Debugging the configuration +---------------------------- +Use `ls -lR /etc/cinit` or one of the tools found in contrib+tools/. + + +Examples +-------- +Currently there are some example configurations available +at http://unix.schottelius.org/cinit/samples/cinit-0.3/, sorted +by host on which they are created. + +In near future, there will also be a file name configuration.example.text, +which will lead you to a sample configuration. + + +References +---------- ++ [[[cconfig]]] http://nico.schotteli.us/papers/linux/cconfig/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/cross-compiling.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/cross-compiling.text new file mode 100644 index 00000000..67208534 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/cross-compiling.text @@ -0,0 +1,6 @@ +conf/os to destination os +conf/cc +conf/ld +conf/cflags +conf/ldflags + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/current-init-problems.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/current-init-problems.text new file mode 100644 index 00000000..529c2f84 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/current-init-problems.text @@ -0,0 +1,170 @@ +Currently available init systems and their problems +=================================================== +Nico Schottelius +0.1, for cinit 0.3, Initial version from 2006-12-11 +:Author Initials: NS + + +This document describes some other init systems, especially +the "traditional" ones and describes their problems. + + +Introduction +------------- +some history, sysv, bsd, + +minit, runit, initng, cinit, upstart + + +Implementations +--------------- +List of current implementations as of 2006-12-12. + + +Linux Sys-V-Init +~~~~~~~~~~~~~~~~ +Debian Sid + +/etc/inittab + +"First script" /etc/init.d/rcS (specified +/etc/init.d/rcS: Bourne shell script text executable + +Runlevels: 0-6, different states + +-------------------------------------------------------------------------------- +[9:51] hydrogenium:cinit-0.3pre6% /sbin/runlevel +N 2 +-------------------------------------------------------------------------------- + + +Depending on runlevel, the init calls /etc/init.d/rc $runlevel. + +This is manually configured in /etc/inittab + +/etc/init.d/rc: Bourne shell script text executable + +/etc/init.d/rc + +Calls symlinks in /etc/rc?.d. Each runlevel a directory: + +-------------------------------------------------------------------------------- +[9:51] hydrogenium:cinit-0.3pre6% ls -ld /etc/rc*.d +drwxr-xr-x 2 root root 4096 2006-12-01 16:56 /etc/rc0.d +drwxr-xr-x 2 root root 4096 2006-12-01 16:56 /etc/rc1.d +drwxr-xr-x 3 root root 4096 2006-12-01 16:56 /etc/rc2.d +drwxr-xr-x 2 root root 4096 2006-12-01 16:56 /etc/rc3.d +drwxr-xr-x 2 root root 4096 2006-12-01 16:56 /etc/rc4.d +drwxr-xr-x 2 root root 4096 2006-12-01 16:56 /etc/rc5.d +drwxr-xr-x 2 root root 4096 2006-12-01 16:56 /etc/rc6.d +drwxr-xr-x 2 root root 4096 2006-11-28 23:17 /etc/rcS.d +-------------------------------------------------------------------------------- + + + +rlmanager: sys-v-init hack +~~~~~~~~~~~~~~~~~~~~~~~~~~ +rlmanager: one script to be executed, sources +simply configuration + +Gentoo Linux +~~~~~~~~~~~~ +no content yet + +BSD init +~~~~~~~~ +Analyzed on FreeBSD. +/etc/rc +/etc/rc.d/ system services +/usr/local/etc/rc.d/ user installed services +Scripts may use values from /etc/rc.conf to check whether +they should be started or not. + +runit +~~~~~ +Three stages: Script1, dependencies, Script3 + + +Initng +~~~~~~ +no content yet + +minit +~~~~~ +Focus on being small. Needs libowfat. +Log support through pipe. + + + + + +Problems overview +----------------- + +Scripts +~~~~~~~ +Scripts are slow. Startup time. Execution time. Unecessary overhead. + + +Sequential startup +~~~~~~~~~~~~~~~~~~ +In the 'old' init systems there is no support of parallel execution. +So if one services hangs at startup, the whole system has to wait +(for instance a dhcp request). In the worst case this may result in +a non-booting system. Systems with dependencies can start the gettys +for login before, in parallel to or even after blocking services are +started. The fact, that they *are* started means you can interact with +the system, you can end looping or blocking services. + +So sequential startup may not only be the reason for a pretty +slow system, but also for an unmaintainable one. + +Unecessary services +~~~~~~~~~~~~~~~~~~~ +Many implementations try to do whatever-is-possible on boot, trying to +cover every possible and impossible situation. + +Portmap without any program that needs it. + +Starting all installed services per default (Debian) vs. let the +user choose what to start (Gentoo). + +Nicht entfernte Altlasten ab und zu. + + +No dependencies +~~~~~~~~~~~~~~~ +Systems without dependencies may result in a chaos state after booting up. + + +Only soft dependencies +~~~~~~~~~~~~~~~~~~~~~~~ +The dependencies are used, but because of soft dependencies, services +may be started although their dependency is missing. + + +Parallel init system debugging +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In contrast to the old init systems, parallel executing init systems +are much harder to debug. If the starting init systems does not have +proper logging / reporting to the user (like cinit-0.2 has), the user +may never find out, what happened and why. + + +Parallel / dependency checking init system with variable boot order +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +The boot order may be different each time you boot and is dependent +on the success or failure of services. This way you can never tell +exactly how and in which order they are executed. On multiprocessor +machines, where processes may be truely executed in parallel, there +is no order anymore, but there are n orders on n processors. + +To solve this issue, init systems which support parallel execution +should ship with some testing tools, that simulate a startup. + +cinit will ship with such a tool in cinit-0.4. + + +References +---------- +no content yet diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/daemons.backgrounding.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/daemons.backgrounding.text new file mode 100644 index 00000000..5b61b91d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/daemons.backgrounding.text @@ -0,0 +1,84 @@ +cinit - Daemons backgrounding +============================= +Nico Schottelius +0.1, for cinit 0.3, Initial versinon from 2005-06-12 + + +This document describes the backgrounding process and how to disable it. + + + +Definition +----------- +A daemon is a program which runs in the background. +Running in the background means you cannot access the process +directly (like you can press a key in a shell). + + +Daemons and cinit +------------------ +cinit normally watches system services and restarts them +(`respawn` flag in the configuration). If the process goes to background, +cinit cannot control it directly anymore. + +List of daemons and non-forking parameters +------------------------------------------- + +The following daemons / servers are known to avoid backgrounding easily: + +- acpid [x86 power management]: -f (undocumentated but works) +- apache [webserver]: -DFOREGROUND +- asterisk [pbx]: -f +- bind [dns server/caching]: -f +- cardmgr [pcmcia/cardbus]: -f +- cron (vixie) [schedular]: -f +- cupsd [printer server]: -f or -F +- dhclient [dhcp client]: -d +- dhcp3 (isc) [dhcp server]: -f +- distccd [compile server]: normal behaviour +- dnsmasq [dhcp/tfpt/dns]: -k +- dovecot [imap/pop3 server]: -F +- fam [file alteration monitor]:-f +- fcron [schedular]: -f +- frox [ftp proxy]: "NoDetach" in config +- freeradius [radiusd]: -f +- gdm [display manager]: -nodaemon +- hybrid [irc server]: -foreground +- icecast2 [sound streamer]: normal behaviour +- mini-lpd [printer server]: normal behaviour +- metalog [log server]: normal behaviour +- monotone [vcs]: normal behaviour +- mpd [music server]: --no-daemon +- nessusd ["security server"]: normal behaviour +- ntpd [time server]: -n +- nylon [socks proxy]: -f (prints output to terminal) +- oidentd [identd server]: -i +- oops [http proxy]: normal behaviour +- openpbx [pbx]: -f +- openssh [ssh server]: -D +- openvpn [vpn server]: normal behaviour +- pbbuttonsd [power management]:normal behaviour +- portmap [portmapper]: -f +- proftpd [ftp server]: -n +- qmail [mta]: normal behaviour +- rsync ["file server"]: --no-detach +- silcd ["secure chat server"]: -F, --foreground +- slapd [ldap]: -d +- snmpd [snmp daemon]: -f +- stunnel [ssl wrapper]: "foreground = yes" in config +- svnserve [vcs]: --foreground +- syslogd [log server]: -n +- syslog-ng [log server]: -F +- tcpserver [super server]: normal behaviour +- udhcpc [dhcp client]: normal behaviour +- vsftpd [ftp server]: normal behaviour (or: config: background=no) +- xinetd [super server]: -dontfork + + +Problematic daemons +------------------- +Those are the daemons that do not offer the possibility (as of release 0.2): + +- atd (no switch, no configuraton option) +- inetd (some variants) +- nscd (no switch, no configuraton option) diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/debugging.configuration b/software/cinit/browse_source/cinit-0.3pre19/doc/user/debugging.configuration new file mode 100644 index 00000000..1289865e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/debugging.configuration @@ -0,0 +1,32 @@ +-------------------------------------------------------------------------------- +Debugging your init configuration, +Nico Schottelius 2005-06-17 (Last Modified: 2005-06-17) +-------------------------------------------------------------------------------- + +As writing an init configuration is not the easiest thing, +here are some problems (P) and debugging hints (H): + +P: There's no output! +H: If you don't start a service which outputs something there won't be any, + cinit starts up silently. + +P: Service XYZ seems not to work? +H: Try the following in your shell: + cd /etc/cinit/the-service; ./on "$(on.params)" + If that succeeds it has perhaps something missing which should have been + started before. +H: Create a test-service, which contains the following: + on: link to /bin/echo + on.params: "A test string" (with or without the quotes) + Now add the test-service to the needs directory of service XYZ. + If you see output the next time, the service is started. + Otherwise you forgot to make another service dependent on service + XYZ. + +P: How can I test if a non-outputting service successfully started? +H: Create another service, which depends on your service and make + it echo something. + +P: Does that profile support really work? +H: Try that: cprofile:NONEXISTENT and you'll see. + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/dependencies.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/dependencies.text new file mode 100644 index 00000000..e1154a54 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/dependencies.text @@ -0,0 +1,68 @@ +cinit - Dependencies +==================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2005-12-13 +:Author Initials: NS + +This document describes the different dependency types of cinit. + + +Dependencies in general +----------------------- +Each service may have two types (non-exclusive) types of dependencies: +The so called `needs` or `wants`. These are directories below the service +directory and contain symbolic links to the dependencies. +The name of the link can be freely chosen. + +An example: + +The service '/etc/cinit/svc/getty/2' needs the service +'/etc/cinit/svc/local-tuning/keyboard-layout': +-------------------------------------------------------------------------------- +[21:35] hydrogenium:needs# cd /etc/cinit/svc/getty/2/needs +[21:35] hydrogenium:needs# ls -l +insgesamt 0 +lrwxrwxrwx 1 root root 37 2006-10-26 17:51 keyboard-layout -> ../../../local-tuning/keyboard-layout +[21:35] hydrogenium:needs# cd keyboard-layout/ +[21:35] hydrogenium:keyboard-layout# pwd -P +/etc/cinit/svc/local-tuning/keyboard-layout +-------------------------------------------------------------------------------- +(Warning: This is an incomplete example, it misses at least `mount/root` +as dependency) + +This service could additionally want something else, too. It is also +possible that a service only `wants` another service or that a service +has no dependencies. + + +Absolute versus relative links +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +cinit does not care whether a link is relative or absolute. And +as far as I can see it does not make any difference to usability. + +In general, it seems to be a little bit 'easier' to use relative links +when manually configuring cinit ('ln -s ../../../service' versus +'ln -s /etc/cinit/svc/category/service'), but easier readable when +analysing them (with `ls -l'). + + +The two types +------------- + +needs +~~~~~ +`Needs` are the 'hard dependencies': If a services fails to start that +is linked in the `needs` directory, the service will not be started. + + +wants +~~~~~ +`Wants` are the 'soft dependencies': cinit will try to start the dependencies +found in `wants` before the service, but the service will also be started, +indenpendend of success of the dependencies. + + +Circular dependency problem +---------------------------- +If you manage to create circular dependencies cinit will fall into an +endless loop. Use `cinit.check.config` to verify your configuration. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/example-directory-structure.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/example-directory-structure.text new file mode 100644 index 00000000..d19ac1fa --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/example-directory-structure.text @@ -0,0 +1,140 @@ +cinit - Example directory structure +=================================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2005-12-12 +:Author Initials: NS + + +This document describes a tested directory hierarchy that +you could adapt for your setup. But this is no need, you +are free to design your own layout and/or improve this one. + + +Main idea +--------- +The main reason for this layout is that all services directly located +in /etc/cinit/svc/ would create a not-so-easy maintainable chaos. + + +Categories +---------- +When thinking about grouping some parts together, there came some categories +to my mind: + +- init: This must be there. It is no real choice (well, working with profiles + is an alternative) +- we need to mount things +- things that are used to 'configure' my local system +- network connectivity +- services only locally reachable +- services remote reachable +- something that let me login + +With these requirements the following categories (=directories) were created: + + +getty +~~~~~ +Gettys are those little and nice programs that allow you to login. +As we normally want to have more than one it seems to be senseful +to create a category for it. + +For the creation of the getty services itself, an extremly simply +scheme is used: Simply create services with the number of the getty +that is running. This results in the following setup: + +-------------------------------------------------------------------------------- + /etc/cinit/svc/getty/ + 2/ + 3/ + 4/ + ... +-------------------------------------------------------------------------------- + +The number '1' is skipped, because cinit normally logs to stdout that is +connected to the first console. + +`/etc/cinit/svc/getty/needs/` contains all enabled gettys. This way +`/etc/cinit/svc/init/needs/` can refer to `/etc/cinit/svc/getty/` only +but will catch all gettys. + +If you want to allow users to login via a graphical login screen +(also known as X11 with xdm/gdm/kdm) you could add this service as +`getty/gdm` for instance, because gdm is just another getty (just with +more colours). + + +init +~~~~ +`init` is the service everything begins with. You simply put all other +categories into the `needs` (or if soft-dependencies to `wants`) of this +service. + + +local-services +~~~~~~~~~~~~~~ +This directory contains all the services that are only locally reachable. +This may contain local webserver, a MTA that only accepts mails +via /usr/sbin/sendmail (like qmail is capable of) or some other local +only available services. + + +local-tuning +~~~~~~~~~~~~ +This directory is used for local configuration. It contains services, +that setup the keyboard layout (perhaps called `local-tuning/keyboard-layout` +needed by `getty`!), adjust system to hardware time, cleans /tmp +(`local-tuning/tmpclean`), ... + + +mount +~~~~~ +This directory contains the service to remount the root filesystem +read-write (`mount/root`) which is dependend on the filesystem +check (`mount/root/fsck`, also have a look at 'special-services.text'). +It also contains the services that mount the pseudo filesystems +(`mount/proc` (FreeBSD, Linux) and `mount/sys` (Linux)) and all +other partitions (`mount/home`, `mount/usr`,...) which again contain +a dependency to the filesystem check, if necessary. + + +network +~~~~~~~ +The `network` directory should cover all of the network basics. +This includes setting the hostname (`network/hostname`) configuring +network devices (`network/eth0.static`, `network.ath0.master`) limiting +network accesses (`network/firewall`), enable packet forwarding +(`network/ip-forward`), adjusting the available bandwith +(`network/traffic-shaping`), ... + + +If there are too many network devices, you could create a subfolder named +`network/devices/`. + +I used to suffix the network devices with the mode they run, so I can +use different modes in different profiles (setup the wireless card in +master mode at home, in ad-hoc mode at a friend and in managed mode at +work). + + +remote-services +~~~~~~~~~~~~~~~~ +Remote-services are all services that are reachable from remote hosts. +This includes ssh (`remote-services/opensshd`), webserver +(`remote-services/lighttpd` or `remote-services/apache22`). + +Most servers `need` a working network interface, before they can be +started, but mostly it is enough to have the loopback interface up. + +This results in the possible `needs` dependency for `network/loopback` +and soft dependencies, what we call `wants` on `network`. + +Other examples for remote services are +- dns (`remote-services/dnscache`, `remote-services/tinydns`, + `remote-services/bind`) +- fileserver (`remote-services/smbd`, `remote-services/mmbd`) +- network infrastructure (`remote-services/bgpd`) +- many others + +Many daemons used for `remote-services` are described in +'daemons.backgrounding.text'. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/freebsd.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/freebsd.text new file mode 100644 index 00000000..05499166 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/freebsd.text @@ -0,0 +1,21 @@ +11:33 < mux> from sys/kern/init_main.c: +11:33 < telmich> mux: that's true; I just tried with linux and I tell the + bootloader, who tells the kernel then +11:33 < mux> static char init_path[MAXPATHLEN] = +11:33 < mux> #ifdef INIT_PATH __XSTRING(INIT_PATH); +11:33 < mux> #else +"/sbin/init:/sbin/oinit:/sbin/init.bak:/rescue/init:/stand/sysinstall"; +11:33 < mux> #endif +11:33 < mux> but you give a loader tunable +11:34 < mux> if ((var = getenv("init_path")) != NULL) { +11:34 < mux> strlcpy(init_path, var, sizeof(init_path)); +11:34 < mux> freeenv(var); +11:34 < mux> } +11:34 < mux> here you are +11:34 < telmich> ahh, that's good +11:34 * telmich has to try cinit on freebsd the next days :-) +12:34 < mux> (s/you give/you can give/) +11:35 < mux> so, simply init_path)="/sbin/cinit" in /boot/loader.conf should do + it +11:35 < mux> minus the typo + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/ideas b/software/cinit/browse_source/cinit-0.3pre19/doc/user/ideas new file mode 100644 index 00000000..d3f13d29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/ideas @@ -0,0 +1,3 @@ +- cinit-multi-machine-daemon: + coordinating bootup with several machines + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/installing-cinit.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/installing-cinit.text new file mode 100644 index 00000000..34902057 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/installing-cinit.text @@ -0,0 +1,63 @@ +cinit - Installing +================== +Nico Schottelius +0.1, for cinit 0.3, Initial version from 2006-06-02 +:Author Initials: NS + +This documentes describes how to install cinit. + + +Installing +---------- +Installing cinit is not a big deal, so is this document. +Where possible I added a list of commands to execute at the +end of each section. + + +From source +~~~~~~~~~~~ +Retrieve the latest source from http://unix.schottelius.org/cinit/. +Then extract it, change to the source directory, adjust your OS in the +file "conf/os" and type "make all". + +To report success run scripts/report.compile and send the output +to nico-cinit-report |at| schottelius.org. I will use this information +to know how and where cinit is compiled. Personal values like hostnames +or your e-mail address will *not* be published. + +Code to install cinit: +---------------------------------------------------------------------- +# the program we use to retrieve the source (fetch on FreeBSD) +get=wget +# change to current version +version=0.3pre6 +url=http://unix.schottelius.org/cinit/cinit-${version}.tar.bz2 +# get it +$get "$url" +# exctract it +tar xvjf "cinit-${version}.tar.bz2" +# build it and report success +who=nico-cinit-report +where=schottelius.org +cd cinit-${version} && make all && \ +./scripts/report.compile | mail -s "cinit: compile report" "${who}@${where}" +---------------------------------------------------------------------- + +Warning: Currently the install target is missing. Simply copy +"src/cinit" to /sbin/cinit. + + +Changing compile time parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +All compile time configurations are kept below the "conf" +directory. Please read 'conf-system.text' for more information. + + +Cross-compiling +--------------- +For cross compiling see 'cross-compiling.text'. + + +Continue reading +---------------- +After having installed cinit, continue reading the document "Configuring cinit". diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/main.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/main.text new file mode 100644 index 00000000..ddf88304 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/main.text @@ -0,0 +1,113 @@ +cinit - a modern init system +============================= +Nico Schottelius +v0.1, for cinit-0.2.2, 2005-01-18 +:Author Initials: NS + + +Introduction +============ + +cinit is a fast init system with dependency features and +profile support. It was orientated on the design off Richard Gooch's +need [0] and Felix von Leitner's minit[1]. Minit does not support real +dependencies (you don't know whether the service you depend on really +started) and the need concept is somehow slow (as seen in gentoo). +In addition, minit needs libowfat and dietlibc, which may not be found +on every Unix system. + +cinit main features: +- portability: it should run on every Linux system (and it's quite easy + to port it to other Unices) +- true dependencies +- parallel execution +- highly customisable (see conf/*) +- profile support (specify what services to start depending on the profile) + + +Getting cinit +============= + +This README is part of the source, so you should have it. +If not, goto the homepage [2] and download the tar archive +or get the lastest snapshot via git. + + +Pre-Configuring +=============== + +If you want to fine tune cinit parameters, add different path names, +change the DESTDIR, ... have a look at conf/*. + + +Installing +========== + +You can install cinit parallel to any other init-system, it won't +kill other init's config nor /sbin/init, if it exists. + +You only have to tell your kernel to execute /sbin/cinit instead +of /sbin/init. + +Everybody do: +# make all install + +This will create /sbin/cinit. +If /sbin/init does not exist, it will be linked to /sbin/cinit. + +If it's the first time you operate with cinit, you can also do: +# make install-test + +This will populate /etc/cinit with a testing configuration, +which is somehow minimalistic +(mounting root r/w, starting gettys, setting hostname). + +Although this should work on most Linux systems, it's really +minimalistic. Please configure your cinit installation yourself, +see below how to do that. + +After configuring you need to tell your kernel to boot cinit instead +of your current init system. How to do that depends on your system: + + Linux/LILO and Linux/yaboot (ppc): + append="init=/sbin/cinit" + Linux/grub1 and Linux/grub2: + kernel init=/sbin/cinit + + +Configuring +=========== + +You'll have to configure /etc/cinit and add your existing services. + +Please read doc/configuring.cinit for details. +Please read doc/FAO if there are still questions open. +Please join #cLinux on irc.freenode.org if there are still questions open. + +There can be found some (currently only one) testing examples +below samples/ (some I do use for testing, beware if you use it: +It loads the dvorak keymapping at startup!). + +There are currently no tools to merge your existing init-system +to cinit (like sysvinit-merge, bsd-merge or minit-merge) available. +If someone cares and tries to do that, I would be happy to include +the script(s). + +Additionally I would be thankful for tar-balls containing a complete +replacement of $your_unix_init. + + +Author, Contact, Bug reports, etc. +================================== +Nico Schottelius (nico-linux-cinit<>schottelius [[dot]] org) is the +author. Bug reports should be send to this address. + +The homepage of cinit is [2]. + + +References: +=========== + +[0]: need: http://www.atnf.csiro.au/people/rgooch/linux/boot-scripts/ +[1]: minit: http://www.fefe.de/minit/ +[2]: cinit: http://linux.schottelius.org/cinit/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/meta.dependencies b/software/cinit/browse_source/cinit-0.3pre19/doc/user/meta.dependencies new file mode 100644 index 00000000..fe743c48 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/meta.dependencies @@ -0,0 +1,58 @@ +-------------------------------------------------------------------------------- +Meta-dependencies, +Nico Schottelius, 2005-05-24 +-------------------------------------------------------------------------------- + +1. What are Meta-Dependencies? +2. What are the advantages / disadvantages of it? +3. The solutions + +1. What are Meta-Dependencies? + +A Meta-depedency describes the type of service another service wants, but +not the exact service. + +Example: + remote-services/ssh wants a dns-resolver, it does not care about + what it is (tinycache, bind, maradns, ...), but that it does + name caching. + + +2. What are the advantages / disadvantages of it? + +Meta means beeing indirect. Indirect means beeing slow. So, if +cinit would have to care about meta-dependencies, the code would become +much bigger and slower. + +On the other hand, one would perhaps like to use meta-dependencies, if +one tests different services with the same functionality or switches +them dependending on the situation (see profile.support). + + +3. The solutions + +As told above, cinit won't care about meta-dependencies and as you'll see +why it does not even need to. + +The first solution would be to have a mapping table outside of cinit. +This table could be a file for every meta-dependency and contain the +possibilities: + + dns-resolver: + remote-services/bind + local-services/tinydns + ... + +So one would have to call a program, which creates the real cinit +configuration. This is imho not a very elegant solution and could cause +problems, when handling self-written services. + +Another possibility is to use symlinks: Create service-directories +for all services beeing installed, but do dependencies in "wants/" +and "needs/" to a symlink (for instance create /etc/cinit/meta +and link to real services in there): + + /etc/cinit/meta/dns-resolver -> ../remote-services/bind/ + +This way you have the indirection (meta-dependencies) in the filesystem +and cinit does not need any additional code. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/paths.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/paths.text new file mode 100644 index 00000000..d44bca61 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/paths.text @@ -0,0 +1,121 @@ +cinit - Configuration +====================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2006-06-03 +:Author Initials: NS + +Configuring cinit - the paths used + + +Main structure +--------------- +The base directory under which all configurations are found +is '/etc/cinit' (changable via conf/cinit_dir). + +The basic hierarchy is shown below: +---------------------------------------------------------------------- +/etc/cinit + svc -> services (adjustable: conf/svcdir) + conf -> general configuration (adjustable: conf/confdir) +---------------------------------------------------------------------- + + +The subdirectory 'conf' +~~~~~~~~~~~~~~~~~~~~~~~ +In this directory are general configurations located. +See below for the list of files that are located in this +directory. + + +The subdirectory 'svc' +~~~~~~~~~~~~~~~~~~~~~~ +This directory contains the services. A service is a directory. + + +Filenams for executable files +------------------------------ +When you create something that cinit should execute (like on +starting a service, on stopping a service, on panic, ...), cinit +will recognize the following extensions: + +. cinit executions extensions + - 'name' - the file that should be executed + - `'name'.params` - the parameter to pass to 'name' when executing + - `'name'.env` - the environment to pass to 'name' when executing + + +Name.params +~~~~~~~~~~~ +The 'params' file is a simple file containing one argument on each +line. + +Example: +---------------------------------------------------------------------- +[17:34] hydrogenium:cinit-0.3pre6% ls -l /etc/cinit/svc/init/on +lrwxrwxrwx 1 root root 9 2006-11-16 09:12 /etc/cinit/svc/init/on -> /bin/echo +[17:34] hydrogenium:cinit-0.3pre6% cat /etc/cinit/svc/init/on.params +The initial service has been started. (first parameter) +Some other useful information. (second parameter) +---------------------------------------------------------------------- + +Name.env +~~~~~~~~ +The 'env' file contains the environment definition. +Specify one assignment on each line, containing only "variable=value". + +Example: +---------------------------------------------------------------------- +[18:00] hydrogenium:% cat /etc/cinit/svc/remote-services/tinydns/on.env +IP=192.168.42.23 +---------------------------------------------------------------------- + +eof + +List of executable files +------------------------ +This list shows you what files are executable for cinit. + +on / off +~~~~~~~~~ +The files `on` and `off` are executed if found within a service +definition. `on` is called when starting the service, `off` +is called when stoping it. + + +conf/panic +~~~~~~~~~~ +This file will be executed by cinit if it has to panic. +Panic situation may occur, when there are heavy problems +like failing memory allocation in core areas. You can +change the name of the file in the pre-compilation settings +in `conf/c_panic`. + +If `conf/panic` is missing and cinit has to panic, a builtin +panic action will be called (see `conf/sulogin`). + + +conf/halt +~~~~~~~~~ +`conf/halt` will be called when cinit has shutdown all services +and wants to halt the system. + +You can change the name of the file in the pre-compilation settings +in `conf/c_halt`. + + +conf/poweroff +~~~~~~~~~~~~~ +`conf/poweroff` will be called when cinit has shutdown all services +and wants to poweroff the system. + +You can change the name of the file in the pre-compilation settings +in `conf/c_poweroff`. + + +conf/reboot +~~~~~~~~~~~ +`conf/reboot` will be called when cinit has shutdown all services +and wants to reboot the system. + +You can change the name of the file in the pre-compilation settings +in `conf/c_reboot`. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/problems-and-solutions.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/problems-and-solutions.text new file mode 100644 index 00000000..92cdd241 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/problems-and-solutions.text @@ -0,0 +1,33 @@ +cinit - Problems occured and solutions used +=========================================== +Nico Schottelius +0.1, for cinit 0.3, Initial version from 2007-05-28 +:Author Initials: NS + +This documentes describes real problems people had with +cinit and their appropriate solutions. Feel free to add +your problems and solutions here. + + +Introduction +------------ + + +Adding problems and solutions +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Simply add your problem and solution and sign your paragraph +with your name. Then send the diff -u to the cinit mailinglist +or setup a git-repository so I can pull the changes. + + +Hibernate +--------- +uses /sbin/runlevel, which should *not* respond with 0 or 6 +as the second number. As cinit does not have /sbin/runlevel, +because cinit does not have any runlevels, you could hardcode +it to values hibernate accepts: + +---------------------------------------------------------------------- +#!/bin/sh +echo N 2 +---------------------------------------------------------------------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/problems.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/problems.text new file mode 100644 index 00000000..4fe8a315 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/problems.text @@ -0,0 +1,114 @@ +Problems using cinit +==================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2007-04-24 +:Author Initials: NS + + +Using a high-speed, true dependency aware, profile supporting +logical acting and reliable init system like cinit is not +completly problem free. This document describes some common +problems you may have and their solutions. + + +Possible problems +----------------- + +Confused users +~~~~~~~~~~~~~~ +Compared to traditional init systems like sys-v-init or bsd-init +cinit introduces a complet new boot concept. This does not just +mean that you have services instead of shell-scripts (which is +one reason cinit is starting up faster), but also that the boot +order may be changed dynamically at bootup:, if a service fails. +And even if no service fails, the boot order may be different +on each boot, because processes are started in parallel and +may return earlier or later on each boot. To coordinate the +parallel running processes, cinit uses depencies, which are pretty +easy to understad when configurung, but may need some more +detailled watching at boot to understand it. + +The 'confused users'-problem is perhaps also the biggest +problem for introducing cinit as a replacement to current +init systems. + + +Configuration issues +~~~~~~~~~~~~~~~~~~~~ + +Not marking services as respawn +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +When cinit starts, it will wait for every service to exit. +So if you have a dependency on a service +that never exits, the whole init process may hang (dependending +on the dependencies). If you have services that are intendet +*not* to exit after start, you *have* to mark those with +`respawn`: Those services are started and watched by cinit +and will be restarted. This was a design choice to ensure +that all 'always running' processes *are* restarted. + +I did not find any service that should not exit and not +have a respawn flag. If you really really really have such +a service and you can prove to me that the respawn flag +would do harm to your system, I will think about implementing +a flag that tells cinit not to wait for it, but mark it +as successfully run after it has been started. + +User interaction +~~~~~~~~~~~~~~~~ + +User input +~~~~~~~~~~ +There may be the situation that you have to press a key +or enter some data when a service starts up (like entering +the password for your crypto harddisks). With cinit, this +will look like a mess, because other services may write to +the same console the service wrote a user prompt. + +The best solution for this problem is in my humble +opinion to create an user-input daemon that serialises +the requests and displays one after another. + +This could look like this: Your daemon wants to ask for +a passphrase for the SSL-certificate. You add aa needs +to this daemon to the 'input-daemon'. When you +start this service, it will contact the input-daemon +running on another virtual console and displaying a text +and an input field that is passed back to this service. +After that the input daemon changes back to the initial +console or asks for the next input, if there is another +request available. + +This input daemon may also be run on a graphical (X11) display. +. +Output to the user +~~~~~~~~~~~~~~~~~~ +When cinit starts up there may be many messages printed +out that also may look like printed random order. +To prevent your endusers from being confused you can create +some kind of graphical interface (like a framebuffer +or X11 display) that reads the output of cinit and converts +it to flashing images. It could look like this: + +---------------------------------------------------------------------- + + Your (graphical?) display: + -------------------------------------------------------------- + | /-----------------\ | + | | Red border, | | + | | failed to start | | + | \-----------------/ | + | | + | /------ | + | | Green border, | + | image van | + | | + | | + | | + | | + | | + | | + -------------------------------------------------------------- + + +---------------------------------------------------------------------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/profiles.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/profiles.text new file mode 100644 index 00000000..ab4d3c4c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/profiles.text @@ -0,0 +1,79 @@ +cinit - Profiles +================ +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2005-06-04 +:Author Initials: NS + + +cinit profiles described. + + +What are profiles? +------------------ +Profiles are different configurations for different scenarios. +This means you can use the 'home' profile to setup things +differently than at work, where you would use either +no profile (standard configuration) or the 'work' profile. + + +How to use profiles? +--------------------- +Simply pass 'cprofile:PROFILENAME' (like cprofile:home) to cinit. + + +How to pass argumenents to cinit? +--------------------------------- +How to pass arguments to your init system depends on your operating +system and on your bootloader. + +Linux +~~~~~ +Under Linux the init-system gets the kernel arguments +(see linux.kernel.eats.arguments) as arguments. +So you can use + + kernel /usr/src/linux/vmlinuz cprofile:work (grub1,grub2) + append="cprofile:work" (LILO,yaboot) + +Other Unices should work like Linux, please consult your local +documentation. + + +How to configure profiles? +-------------------------- +It's very simple: Normally cinit would call /etc/cinit/svc/init as +the first service (with all its dependencies). If you pass 'cprofile=wireless' +to it, cinit will start from /etc/cinit/svc/wireless +instead. + +So the only thing you have to do is to create a service directory +below /etc/cinit/svc with the name of the profile you want to use. + +You can simply copy the init-dir and use it as a template: + + ei # cd /etc/cinit/svc; rsync -a init yourprofile + + Standard cp will copy the linked files, not the links, that's why I use rsync + You could also use tar: + + ei # cd /etc/cinit/svc/init; tar c . | (mkdir ../myprof; cd ../myprof; tar x ) + +That's it! + + +Some examples +------------- + +Here are some examples we found in #cLinux: + +-------------------------------------------------------------------------------- + profile name what it does + + musibox only start mp3blaster + terminal start only minicom, which opens the serial line + net-terminal start a respawning shell script, which starts + ssh to the selected host + video start X+mplayer, which plays the dvd/cdrom + wireless What to start when beeing in an unknown wlan + home/work selected services (nfs, ip, ...) for home or work +-------------------------------------------------------------------------------- diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/replacing.init b/software/cinit/browse_source/cinit-0.3pre19/doc/user/replacing.init new file mode 100644 index 00000000..2858c56c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/replacing.init @@ -0,0 +1,13 @@ +-------------------------------------------------------------------------------- +replacing your current init system, +Nico Schottelius 2005-06-14 (Last Modified: 2005-06-14) +-------------------------------------------------------------------------------- + +Simply install cinit (make install), configure cinit +(see configuring.cinit), restart system using +cinit (see README/Installing) delete /sbin/init +and link, move or copy cinit to init (ln -s /sbin/cinit /sbin/init), reboot. + +That's everything in general, the biggest part will be to configuring cinit. + +See also doc/merging.other.initsystems. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/respawning-sleep.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/respawning-sleep.text new file mode 100644 index 00000000..24ed17e0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/respawning-sleep.text @@ -0,0 +1,52 @@ +cinit - Respawning and sleeping +=============================== +Nico Schottelius +0.1, for cinit 0.3, Initial Version from 2007-04-13 +:Author Initials: NS + + +How cinit sleeps, before a service is respawned. + +Introduction +------------ +When a service, that is configured to be respawning, exits cinit restarts it. +Because services may be broken and thus cinit would try to restart it many +times in a second, it is necessary to sleep between restarts. + +The big question: How to sleep? +------------------------------------ +The first possibility is to sleep a fixed amount of time between restarts: +For instance one second. This is not a good solution, because this waits +one unecessary second if the process just crashed. It may be too less, if +the service is really broken. + +The second possibility is to sleep a dynamic amount of time. + + +The next big question: How long to sleep? +----------------------------------------- +I think that as long as a service is broken we should not investigate to much +time into restarting it. So we can define a maximum amount of time to sleep +(for instance 30 seconds). The minimum amount of time to sleep is zero seconds. + +When the service is first started, the sleep time defaults to the minimum +amount of time. Each time the service is restarted, the sleep time is adjusted: + +sleep time (st) = Maximum sleep time (mst) / Time the process was running (tr) + +- If tr is < 1 it is adjusted to 1 and thus st is set to mst. +- If tr is > mst, st is set to 0. + + +How to force restart of a service? +---------------------------------- +Use cvsc (to be implemented). + + +Hom is it implemented? +---------------------- +Everytime cinit has to respawn a service it has to fork() itself. +The sleep call is implemented in the fork, so cinit itself does not have +to care about it. After the sleep time is over or the fork() recieves +SIGALARM it executes the real service. cinit itself records as start time +the current time plus sleep time. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/special-services.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/special-services.text new file mode 100644 index 00000000..4367bed1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/special-services.text @@ -0,0 +1,12 @@ +at: + no non-forking mode +fsck: + returns non-zero if it repaired something. + You have to wrap it into a shell-script :-( + + #!/bin/sh + fsck $@ + [ $? -le 1 ] && exit 0 + exit 1 + +Non-zero exit in general diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/supported-os.text b/software/cinit/browse_source/cinit-0.3pre19/doc/user/supported-os.text new file mode 100644 index 00000000..97b29506 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/supported-os.text @@ -0,0 +1,32 @@ +Supported operating systems +=============== +Nico Schottelius +0.1, Initial Version from 2007-02-15 +:Author Initials: NS + +This document lists the supported operating systems. + + +Supported OS +------------ +This means currently that cinit compiles on that system + +Tested by the author +~~~~~~~~~~~~~~~~~~~~ +- GNU/Linux +- FreeBSD +- NetBSD + +Reported by others +~~~~~~~~~~~~~~~~~~ +[none] + +Unsupported OS +-------------- + +OpenBSD +~~~~~~~ +Seems to not comply to Posix / XSI. Have a look at +http://home.schottelius.org/~nico/unix/openbsd/ftok-sys-ipc.h-problem. +This is a demo of the problem on OpenBSD 4.0 with cinit-0.3pre7-git. + diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/updating.cinit b/software/cinit/browse_source/cinit-0.3pre19/doc/user/updating.cinit new file mode 100644 index 00000000..fc0d3fef --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/updating.cinit @@ -0,0 +1,17 @@ +-------------------------------------------------------------------------------- +updating cinit, +Nico Schottelius 2005-06-14 (Last Modified: 2005-06-14) +-------------------------------------------------------------------------------- + +To exchange cinit without rebooting do the following: + + 1. install new cinit (make install) + 2. call cservice -u thilo (if you have cinit-0.1 or later) + + For older versions: + + 2. go to rescue mode (cservice -s thilo) + 3. re-exec cinit (exec /sbin/cinit) + +Attention: This will kill everything running and restart as if you would just + have booted. diff --git a/software/cinit/browse_source/cinit-0.3pre19/doc/user/using.rescue b/software/cinit/browse_source/cinit-0.3pre19/doc/user/using.rescue new file mode 100644 index 00000000..f58ff512 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/doc/user/using.rescue @@ -0,0 +1,30 @@ +-------------------------------------------------------------------------------- +How to use the rescue mode, +Nico Schottelius 2005-06-13 (Last Modified: 2005-06-13) +-------------------------------------------------------------------------------- + +cinit knows of a so called "rescue mode" (other init systems also +name it "Single user"). + +In this rescue mode you have a shell. Exactly one shell. + +No getty, no daemon, nothing will be alive, not even cinit. + +You start the rescue mode either by + a) sending SIGUSR2 to cinit (kill -USR2 1) + b) using cservice (cservice -s thilo) + +You can do maintaining then. When you finished, you can either + a) hard-reboot/poweroff/halt + b) restart cinit and restart the system without needing to reboot + +In the later case, you simply have to replace your shell with +cinit. In most shells you can do that by entering the following: + +shell # exec /sbin/cinit + +This assumes that you left the system in a clean state: Exactly as +the kernel would start (Well, cinit may ignore if some things are there, +but do not wonder if some services will fail, if their job is already done.). + +Oh, and yes, you could even update cinit this way ;-) diff --git a/software/cinit/browse_source/cinit-0.3pre19/libexec/cinit-conf/dialog-alias.sh b/software/cinit/browse_source/cinit-0.3pre19/libexec/cinit-conf/dialog-alias.sh new file mode 100644 index 00000000..89813726 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/libexec/cinit-conf/dialog-alias.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Nico Schottelius +# the cLinux project +# Created: 2004-12-25 +# Last-Modified: +# choose the correct dialog version + +if [ -z "$DISPLAY" ]; then + alias dialog="dialog --shadow --backtitle \"$full_version\"" +else + alias dialog="Xdialog --backtitle \"$full_version\"" +fi diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/README b/software/cinit/browse_source/cinit-0.3pre19/scripts/README new file mode 100644 index 00000000..95afabe2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/README @@ -0,0 +1,3 @@ +Scripts for internal use. + +Users: Use bin/ for usable helper programs. diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.ipc b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.ipc new file mode 100755 index 00000000..b8154ba9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.ipc @@ -0,0 +1,20 @@ +#!/bin/sh +# Nico Schottelius, 2006-07-28 +# +# cinit: configure the ipc method to use +# + +HIER=$(dirname $0) +DDIR=$HIER/../../src/ipc +DFILE=${DDIR}/current +IPC_METHOD=$(head -n 1 "$HIER/../../conf/ipc_method") + +echo "Configure: IPC: Using \"$IPC_METHOD\" as IPC method" + +# always remove link before, as ln seems to be broken +# Doing ln -sf src/ipc/$method current twice, will create the file +# "current" _BELOW_ src/ipc/$method and not overwrite the link +# src/ipc/current + +rm -f "${DFILE}" +ln -sf "${IPC_METHOD}" "${DFILE}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.mark b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.mark new file mode 100755 index 00000000..62454c7f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.mark @@ -0,0 +1,8 @@ +#!/bin/sh +# Nico Schottelius +# cinit: touch a file to mark everything configured +# 2006-08-27 +# + +echo "Configure: MK: Marking directory as configured" +touch .configured diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.os b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.os new file mode 100755 index 00000000..ece6f53c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.os @@ -0,0 +1,15 @@ +#!/bin/sh +# Nico Schottelius +# cinit: setups symlinks for the os +# + +DDIR=$(dirname $0)/../../src/os +DFILE="$DDIR/current" +OSCONFIG=$(dirname $0)/../../conf/os + +OS=$(head -n 1 "$OSCONFIG") + +echo "Configure: OS: Binaries are created for $OS ..." + +rm -f "${DFILE}" +ln -sf "${OS}" "${DFILE}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.tools b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.tools new file mode 100755 index 00000000..39c2f00d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/build/cinit.configure.tools @@ -0,0 +1,24 @@ +#!/bin/sh +# Nico Schottelius +# cinit: setups scripts for compiling and linking +# + +HIER=$(dirname $0) +DDIR=$HIER/../../tmpbin/ +CC=$(head -n 1 "$HIER/../../conf/cc") +CFLAGS=$(head -n 1 "$HIER/../../conf/cflags") +LD=$(head -n 1 "$HIER/../../conf/ld") +LDFLAGS=$(head -n 1 "$HIER/../../conf/ldflags") +STRIP=$(head -n 1 "$HIER/../../conf/strip") + +echo "Configure: CC: Creating cc, ld and strip ..." + +mkdir -p "$DDIR" +cd "$DDIR" + +echo "$CC $CFLAGS \"\$@\"" > cc +echo "$LD $LDFLAGS \"\$@\"" > ld +echo "$STRIP \"\$@\"" > strip + +# set correct permissions +chmod 0700 * diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/README b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/README new file mode 100644 index 00000000..64c0d174 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/README @@ -0,0 +1 @@ +Scripts used to generate or aid in creating a configuration. diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/create_services.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/create_services.sh new file mode 100644 index 00000000..52e123a9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/create_services.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Nico Schottelius +# 2007-05-21 +# +# Task: +# Reads list of services to create from stdin +# Create services (add correct dependencies) +# +# Options: +# -d: alternate destination directory (instead of /etc/cinit/svc) diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/enable_services.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/enable_services.sh new file mode 100644 index 00000000..ce4563a9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/enable_services.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Nico Schottelius +# 2007-05-21 +# +# Task: +# Reads list of services to enabled from stdin +# Services must already exist +# +# Options: +# -d: alternate destination directory (instead of /etc/cinit/svc) diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/search_enabled_services.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/search_enabled_services.sh new file mode 100644 index 00000000..69e519b9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/search_enabled_services.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Nico Schottelius +# 2007-05-21 +# +# Task: +# Search for enabled services: +# - /etc/rc.conf +# - /usr/local/etc/rc.d/ +# Output list of services to stdout +# +# Options: +# -r diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/search_services.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/search_services.sh new file mode 100644 index 00000000..2043e857 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/configuration/freebsd/search_services.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Nico Schottelius +# 2007-05-21 +# +# Task: +# Search all services: +# - /etc/rc.conf +# - /usr/local/etc/rc.d/ +# Output list of all services to stdout +# +# Options: +# -r diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/README b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/README new file mode 100644 index 00000000..c0e8b95b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/README @@ -0,0 +1 @@ +Scripts that should move to bin/ as soon as they are ready to be used. diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.migrate.sysvinit.debian b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.migrate.sysvinit.debian new file mode 100755 index 00000000..0fdcb5f1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.migrate.sysvinit.debian @@ -0,0 +1,126 @@ +#!/bin/sh +# Nico Schottelius +# Date: Sun Oct 16 16:57:03 CEST 2005 +# cLinux/cinit +# Automagically convert Debian-Sysv-Iinit +# THIS IS NOT CLEAN. +# THIS IS NOT EVEN INTENTED TO BE CLEAN. +# This is just a small hack, because my girlfriend wants her notebook back. +# -- She's not my girlfriend anymore, but now I want to test cinit-0.3pre15 on +# my notebook + +echo "***> $(basename $0): converting Debian-Sys-V-Init" + +# read standard values, may be overwritten from outside +. $(dirname $0)/cinit-conf.read-conf + +if [ -d "${CINIT_DIR}" ]; then + echo "ERROR: Configuration directory exists already at ${CINIT_DIR}." + exit 1 +fi + +echo "***> Finding standard config ..." +# variables, which can be set from the outside +: ${ROOT_DEV:=$(awk '$2 ~ /^\/$/ { print $1 }' ${DESTDIR}/etc/fstab)} +: ${ROOT_FSCK:=$(awk '$2 ~ /^\/$/ { print $6 }' ${DESTDIR}/etc/fstab)} +: ${ROOT_FS:=$(awk '$2 ~ /^\/$/ { print $3 }' ${DESTDIR}/etc/fstab)} +: ${HOSTNAME:=$(hostname)} + + +echo "***> Configuration" +echo "Destdir: (\$DESTDIR): $DESTDIR" +echo "Hostname (\$HOSTNAME): $HOSTNAME" +#echo "Keymap (\$C_KEYMAP): $C_KEYMAP" +echo "Root device (\$ROOT_DEV): $ROOT_DEV" +echo "Root fsck (\$ROOT_FSCK): $ROOT_FSCK" +echo "Root FS (\$ROOT_FS): $ROOT_FS" +echo "Config-Dir: (\$CINIT_DIR): $CINIT_DIR" +read -p "Is this correct (Y/n) " correct + +set -x +echo "***> Installing standard structure and dependencies" +set -e +$(dirname $0)/cinit-conf.install.dirs.base +$(dirname $0)/cinit-conf.install.dirs.svc-categories +$(dirname $0)/cinit-conf.install.standard.init.deps + +echo "***> Adding mount / r/w" +$(dirname $0)/cinit-conf.install.service.mount-root + +if [ "$ROOT_FSCK" = "1" ]; then + echo "***> Adding fsck for $ROOT_DEV ..." + $(dirname $0)/cinit-conf.install.service.linux.fsck root "$ROOT_DEV" "$ROOT_FS" + echo "***> Adding dependency" + $(dirname $0)/cinit-conf.add.dependency mount/root needs fsck/root +else + echo "***> Skipping fsck for $ROOT_DEV (\$ROOT_FSCK is not 1 in fstab)..." +fi + +echo "***> Setting up hostname: $HOSTNAME" +$(dirname $0)/cinit-conf.install.service.linux.hostname "$HOSTNAME" + +echo "***> Creating getties (tty1-8)" +for i in `seq 1 8`; do + $(dirname $0)/cinit-conf.getty.add + + # each getty needs: + # - root r/w + $(dirname $0)/cinit.add.dependency getty/$i needs mount/root + # - hostname + $(dirname $0)/cinit.add.dependency getty/$i needs network/hostname +done + +echo "***> Enabling getties (tty2-8)" +for i in `seq 2 8`; do + # add getties to getty/ + $(dirname $0)/cinit-conf.add.dependency getty wants getty/$i +done + +exit 0 +# FIXME: Stopped here + +echo "***> Setting up standard mounts ..." +$(dirname $0)/cinit.install.service.hostname.generic "$HOSTNAME" + +# +# Convert services: check /etc/rcS.d and /etc/rcX.d +# +echo "***> Converting services ..." +for script in $(cd /etc/rcS.d/; ls S*; cd /etc/rc${RUNLEVEL}.d/; ls S*); do + echo -n "$script: " + case $script in + # SCRIPTS READY + *ntpdate) + $(dirname $0)/cinit.install.service.ntpdate.debian + $(dirname $0)/cinit.add.dependency local-tuning/ntpdate needs network + ;; + *udev*) + $(dirname $0)/cinit.install.service.udev + + # SCRIPTS NEVER READY + *glibc.sh|*module-init-tools|*modutils|*procps.sh|*hotplug-net|*bootmisc.sh|*nviboot|*screen-cleanup|*x11-common|*sudo|*makedev|*rmnologin) + echo "Ignoring (useless)." + ;; + + # SCRIPTS NOT YET READY + *mountvirtfs|*checkroot.sh|*ifupdown-clean|*checkfs.sh|*mountall.sh|*ifupdown|*hostname*|*mountnfs.sh|*alsa|*rsync|*ssh|*fam|*cron|*gdm) + echo "converting planned later." + ;; + + # SCRIPTS LATER TO DO + *bootlogd|*keymap.sh|*hwclock*|*discover|*pppd-dns|*dns-clean|*networking|*portmap|*console-screen.sh|*urandom|*klogd|*apmd|*dbus-1|*exim4|*pcmcia|*nfs-common|*stop-bootlogd) + echo "unsupported currently (FIXME PLEASE)." + ;; + *sysklogd|*ppp|*inetd|*lpd|*aumix|*atd) + echo "unsupported (choose a better alternative)." + ;; + *initrd-tools.sh|*libdevmapper*|*hotplug) + echo "Ignoring (general or bloated script)." + ;; + *) + echo "Ignoring (unknown)" + ;; + esac +done + +echo "***> Finished." diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.migrate.sysvinit.debian.sid b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.migrate.sysvinit.debian.sid new file mode 100755 index 00000000..c0945edb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.migrate.sysvinit.debian.sid @@ -0,0 +1,139 @@ +#!/bin/sh +# Nico Schottelius +# Date: Sun Oct 16 16:57:03 CEST 2005 +# cLinux/cinit +# Automagically convert Debian-Sysv-Iinit +# THIS IS NOT CLEAN. +# THIS IS NOT EVEN INTENTED TO BE CLEAN. +# This is just a small hack, because my girlfriend wants her notebook back. +# -- She's not my girlfriend anymore, but now I want to test cinit-0.3pre15 on +# my notebook + +echo "***> $(basename $0): converting Debian-Sys-V-Init" + +# read standard values, may be overwritten from outside +. $(dirname $0)/cinit-conf.read-conf + +echo "***> Finding standard config ..." +# variables, which can be set from the outside +ROOT_DEV=${ROOT_DEV:-$(awk '$2 ~ /^\/$/ { print $1 }' /etc/fstab)} +ROOT_FSCK=${ROOT_FSCK:-$(awk '$2 ~ /^\/$/ { print $6 }' /etc/fstab)} +ROOT_FS=${ROOT_FS:-$(awk '$2 ~ /^\/$/ { print $3 }' /etc/fstab)} +RUNLEVEL=${RUNLEVEL:-$(runlevel | awk '{ print $2 }')} + +echo "***> Detecting keymap (this may take some time)" + +if [ -z "$C_KEYMAP" ]; then + echo "Please set the variable C_KEYMAP to your keymap." + echo "It is impossible to detect reliable your keymap in Debian." + exit 1 +fi + + +echo "***> Configuration" +echo "Hostname (\$HOSTNAME): $HOSTNAME" +echo "Keymap (\$C_KEYMAP): $C_KEYMAP" +echo "Root device (\$ROOT_DEV): $ROOT_DEV" +echo "Root fsck (\$ROOT_FSCK): $ROOT_FSCK" +echo "Root FS (\$ROOT_FS): $ROOT_FS" +echo "Runlevel (\$RUNLEVEL): $RUNLEVEL" +echo "Destdir: (\$DESTDIR): $DESTDIR" +echo "Config-Dir: (\$CINIT_DIR): $CINIT_DIR" +read -p "Is this correct (Y/n) " correct + +if [ "$correct" != "y" -a "$correct" != "Y" ]; then + echo "***> Abort." + exit 1 +fi + +if [ -d "${DESTDIR}${CINIT_DIR}" ]; then + echo "ERROR: Configuration already exists at ${DESTDIR}${CINIT_DIR}." + exit 1 +fi + +echo "***> Installing standard structure and dependencies" +set -e +$(dirname $0)/cinit.install.config-dir +$(dirname $0)/cinit.install.standard.dirs +$(dirname $0)/cinit.install.standard.init.deps + +echo "***> Adding mount / r/w" +$(dirname $0)/cinit.install.service.mount-root + +if [ "$ROOT_FSCK" = "1" ]; then + echo "***> Adding fsck for $ROOT_DEV ..." + $(dirname $0)/cinit.install.fsck root "$ROOT_DEV" "$ROOT_FS" + echo "***> Adding dependency" + $(dirname $0)/cinit.add.dependency mount/root needs fsck/root +else + echo "***> Skipping fsck for $ROOT_DEV ..." +fi + +echo "***> Setting up standard mounts ..." +$(dirname $0)/cinit.install.service.hostname.generic "$HOSTNAME" + +echo "***> Setting up hostname: $HOSTNAME" +$(dirname $0)/cinit.install.service.hostname.generic "$HOSTNAME" + +echo "***> Setting up keymap" +$(dirname $0)/cinit.install.service.keymap.c_keymap + +echo "***> Creating getties (tty1-8)" +for i in `seq 1 8`; do + $(dirname $0)/cinit.add.getty + + # each getty needs: + # - root r/w + $(dirname $0)/cinit.add.dependency getty/$i needs mount/root + # - hostname + $(dirname $0)/cinit.add.dependency getty/$i needs network/hostname +done + +echo "***> Enabling getties (tty2-8)" +for i in `seq 2 8`; do + # add getties to getty/ + $(dirname $0)/cinit.add.dependency getty wants getty/$i +done + +# +# Convert services: check /etc/rcS.d and /etc/rcX.d +# +echo "***> Converting services ..." +for script in $(cd /etc/rcS.d/; ls S*; cd /etc/rc${RUNLEVEL}.d/; ls S*); do + echo -n "$script: " + case $script in + # SCRIPTS READY + *ntpdate) + $(dirname $0)/cinit.install.service.ntpdate.debian + $(dirname $0)/cinit.add.dependency local-tuning/ntpdate needs network + ;; + *udev*) + $(dirname $0)/cinit.install.service.udev + + # SCRIPTS NEVER READY + *glibc.sh|*module-init-tools|*modutils|*procps.sh|*hotplug-net|*bootmisc.sh|*nviboot|*screen-cleanup|*x11-common|*sudo|*makedev|*rmnologin) + echo "Ignoring (useless)." + ;; + + # SCRIPTS NOT YET READY + *mountvirtfs|*checkroot.sh|*ifupdown-clean|*checkfs.sh|*mountall.sh|*ifupdown|*hostname*|*mountnfs.sh|*alsa|*rsync|*ssh|*fam|*cron|*gdm) + echo "converting planned later." + ;; + + # SCRIPTS LATER TO DO + *bootlogd|*keymap.sh|*hwclock*|*discover|*pppd-dns|*dns-clean|*networking|*portmap|*console-screen.sh|*urandom|*klogd|*apmd|*dbus-1|*exim4|*pcmcia|*nfs-common|*stop-bootlogd) + echo "unsupported currently (FIXME PLEASE)." + ;; + *sysklogd|*ppp|*inetd|*lpd|*aumix|*atd) + echo "unsupported (choose a better alternative)." + ;; + *initrd-tools.sh|*libdevmapper*|*hotplug) + echo "Ignoring (general or bloated script)." + ;; + *) + echo "Ignoring (unknown)" + ;; + esac +done + +echo "***> Finished." diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.miniconf.linux b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.miniconf.linux new file mode 100755 index 00000000..45dcc632 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.miniconf.linux @@ -0,0 +1,103 @@ +#!/bin/sh +# Nico Schottelius +# cinit: install basic setup +# Date: 2005-08-07 +# + + +. $(dirname $0)/cinit.read-conf + +echo "****************************************************************************" +echo "******************************* WARNING ************************************" +echo "****************************************************************************" +echo "" +echo "This will install a minimal cinit configuration." +echo "This configuration _SHOULD_ be able to run on _MOST_ systems." +echo "Still, it's highly EXPERIEMENTAL, use with CAUTION." +echo "" +echo "Please make sure, that" +echo " - you are using a journaling filesystem (fsck is not used)" +echo " - you have agetty, fgetty or mingetty installed" +echo " - you are runnig Linux 2.6 (sysfs is used)" +echo " - you have udev or static device nodes (you need /dev/tty*)" +echo " - getties will run on tty2-tty7, tty1 is used or logging" +echo "" +echo "****************************************************************************" +echo "******************************* WARNING ************************************" +echo "****************************************************************************" + +notosoftwarepatents="Please keep an eye on software patents, they are evil." +read -p "Do you really want to continue? [y/N] " notosoftwarepatents + +if [ "$notosoftwarepatents" = "y" -o "$notosoftwarepatents" = "Y" ]; then + echo "Let us try it ..." +else + echo 'Bye bye!' + exit 0 +fi + +set -e + +# Create basic layout +$(dirname $0)/cinit.install.standard-dirs + +# Install services: +# - mount root r/w +# - mount /proc +# - mount /sys +# - install getties on tty2-tty7 +# - add cleanup for /etc/mtab +# - add loopback device +# - init service + echo + +################################### mount ##################################### +# mount root read/write +$(dirname $0)/cinit.install.service.mount-root + +# - mount /proc +$(dirname $0)/cinit.install.service.mount-proc + +# - mount /sys +$(dirname $0)/cinit.install.service.mount-sys + +# mount needs everything below it +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS" +ln -sf "${DESTDIR}/${CINIT_DIR}/mount/root" "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS" +ln -sf "${DESTDIR}/${CINIT_DIR}/mount/proc" "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS" +ln -sf "${DESTDIR}/${CINIT_DIR}/mount/sys" "${DESTDIR}/${CINIT_DIR}/mount/$C_NEEDS" + +################################### getty ##################################### +# mount root read/write +# install getties +begin_getty=2 +end_getty=7 +i=$begin_getty + +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/getty/$C_WANTS" +while [ "$i" -le "$end_getty" ]; do + $(dirname $0)/cinit.add.getty + ln -sf "${DESTDIR}/${CINIT_DIR}/getty/$i" "${DESTDIR}/${CINIT_DIR}/getty/$C_WANTS" + i=$(($i+1)) +done + +################################### mtab ##################################### +# - add cleanup for /etc/mtab +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/local-tuning/$C_NEEDS" +$(dirname $0)/cinit.install.service.cleanup-mtab +ln -sf "${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab" "${DESTDIR}/${CINIT_DIR}/local-tuning/$C_NEEDS" + +################################### lo ##################################### +# - add loopback device +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/network/$C_NEEDS" +$(dirname $0)/cinit.install.service.network-lo +ln -sf "${DESTDIR}/${CINIT_DIR}/network/lo" "${DESTDIR}/${CINIT_DIR}/network/$C_NEEDS" + +# - init service + echo +# init depends on mount, getty -> everything from base-layout +$(dirname $0)/cinit.install.service.init +"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}" + +ln -sf "${DESTDIR}/${CINIT_DIR}/local-services/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}" +ln -sf "${DESTDIR}/${CINIT_DIR}/getty/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}" +ln -sf "${DESTDIR}/${CINIT_DIR}/local-tuning/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}" +ln -sf "${DESTDIR}/${CINIT_DIR}/network/" "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_NEEDS}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.miniconf.linux.todo b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.miniconf.linux.todo new file mode 100644 index 00000000..953c06e7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit-conf.miniconf.linux.todo @@ -0,0 +1,4 @@ +Make it work with a system. + +Same aim as cinit.install.test, but different approach: +This script tries to build the config dynamically. diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit.install.test b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit.install.test new file mode 100755 index 00000000..154c9375 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit.install.test @@ -0,0 +1,20 @@ +#!/bin/sh +# Nico Schottelius +# cinit: install basic test config +# + +. $(dirname $0)/cinit.read-conf + +TARDIR=$(dirname $0)/../samples + +case `uname -s` in + Linux) + [ -e /etc/gentoo-release ] && TAR=${TARDIR}/gentoo.tar + [ -e /etc/debian_version ] && TAR=${TARDIR}/debian.tar + [ -e /etc/SuSE-release ] && TAR=${TARDIR}/suse.tar + [ -e /etc/mandrake-release ] && TAR=${TARDIR}/mandrake.tar + [ -e /etc/fedora-release ] && TAR=${TARDIR}/fedora.tar + ;; +esac + +tar xf ${TAR} -C "$DESTDIR/$PREFIX/$CINIT_DIR" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit.install.test.todo b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit.install.test.todo new file mode 100644 index 00000000..8e48d55e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/cinit.install.test.todo @@ -0,0 +1 @@ +See ditz: portability-1 diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/migrate-linux-debian-lenny.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/migrate-linux-debian-lenny.sh new file mode 100755 index 00000000..8f3185e0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/future-bin/migrate-linux-debian-lenny.sh @@ -0,0 +1,34 @@ +#!/bin/sh +# +# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org) +# +# This file is part of cinit-conf. +# +# cinit-conf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit-conf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit-conf. If not, see . +# + +bd="${0%/*}" +export bd + +echo "Trying to configure cinit for your Debian Linux" + +# migrate /etc/fstab to mounts + +"$bd/linux/sys-v-init/migrate-fstab.sh" + +# migrate / create 6 getties + +# migrate network + +# migrate services diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/README b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/README new file mode 100644 index 00000000..2162b6b1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/README @@ -0,0 +1 @@ +Only to be used by Nico Schottelius. diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/cinit.release b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/cinit.release new file mode 100755 index 00000000..3cf7d778 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/cinit.release @@ -0,0 +1,91 @@ +#!/bin/sh +# Nico Schottelius +# Build release tar +# Date: Sat Oct 15 21:38:29 CEST 2005 +# Last Changed: ls -l + +################################################################################ +# standard vars stolen from cconf +__pwd="$(pwd -P)" +__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)" +__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname" + + + +if [ $# -ne 1 ]; then + echo "This is a maintainer-only script to release cinit" + echo "${__myname}: version" + exit 1 +fi + +# paths +D_BASE="/home/users/nico/privat/rechner/netz/seiten/www.nico.schottelius.org/src/software/cinit" +D_DIR=${D_BASE}/archives/ +D_SOURCE=${D_BASE}/browse_source/ + +# versions to check +VERSION_CONF="$(head -n1 $(dirname $0)/../../conf/version | sed 's/^"\(.*\)"$/\1/')" +VERSION_ARGV="$1" +VERSION_GIT="$(git describe)" +VERSION_README=$(grep -q "$VERSION_ARGV" README && echo $VERSION_ARGV) + +echo "=> Version commandline: $VERSION_ARGV" +echo "=> Version conf/version: $VERSION_CONF" +echo "=> Version git: $VERSION_GIT" +echo "=> Version README: $VERSION_README" + +if [ "$VERSION_ARGV" = "$VERSION_CONF" -a "$VERSION_ARGV" = "$VERSION_GIT" ]; then + echo "=> Version confirmed." +else + echo "*** VERSION MISMATCH ***" + exit 42 +fi + +# Finally, accept the right version +VERSION="$VERSION_GIT" +NAME="cinit-${VERSION}" +TARNAME="cinit-${VERSION}.tar.bz2" +TARPATH="$D_DIR/$TARNAME" + +echo -n "=> Continue to release $NAME? " +read yes + +git archive $VERSION --prefix="${NAME}/" --output="${TARPATH}" +( cd "$D_SOURCE" && tar xvf "$TARPATH" ) +cp README "${D_BASE}.mdwn" + +echo "Please do not forget to update the website..." + +################################################################################ +# Unused, but interesting + +# make sure the examples are not executed anymore +exit 0 + +# match cinit-$version as directory name +VERSION_DIR="$(cd "$DIR"; pwd -P | sed 's;.*/cinit-;;')" + +# grep version string from CHANGES file (often used, obsoleted here) +VERSION_CHANGES="$(head -n1 "$(dirname $0)/../../CHANGES" | sed 's/cinit-\(.*\):.*/\1/')" + +# Correct umask 077 results +echo "Correcting paranoid permissions" +ssh "$D_HOST" "find \"$D_SOURCE/$RDIR\" -type f -exec chmod 0644 {} \\;" +ssh "$D_HOST" "find \"$D_SOURCE/$RDIR\" -type d -exec chmod 0755 {} \\;" +ssh "$D_HOST" "cd \"$D_SOURCE\" && rm -f \"$LINK\" && ln -s \"$RDIR\" \"$LINK\"" + +# Create archive +echo "Creating bzip2 compressed tar" +cd $DDIR +tar cj -X $DIR/.exclude -f "$OUT_NAME" "$RDIR" +chmod 0644 "$OUT_NAME" + +# Transfer to a remote host +echo "Transfering to $D_HOST" +scp "$OUT_NAME" "$D_HOST:$D_DIR" + +echo "Extracting to $D_SOURCE" +ssh "$D_HOST" "tar xfj $D_DIR/$OUT_NAME -C $D_SOURCE" + + + diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile+run.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile+run.sh new file mode 100755 index 00000000..30ec68a6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile+run.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# yah - yet another hack + +if [ ! "$1" ]; then + echo "HOSTNAME" + exit 23 +fi + +host="$1" + +hier=$(dirname $0) + +$hier/compile_test.sh "$host" + +if [ $? -ne 0 ]; then + echo "aborting, did not compile on $1" + exit 1 +fi + +ssh "${host}" './cinit/src/cinit & (sleep 30; kill -9 $(pgrep cinit))' diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_local.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_local.sh new file mode 100755 index 00000000..e2bfce5e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_local.sh @@ -0,0 +1,24 @@ +# just a hack + +dir=$(dirname $0) + +sys=$(uname -s) +sys_small=$(echo $sys | tr '[A-Z]' '[a-z]') + +case $(uname -s) in + NetBSD|OpenBSD) + make=gmake + ;; + *) + make=make + ;; +esac + +cd "${dir}/../../" +echo $sys_small > conf/os +# automatically called by make.. +#./bin/cinit.configure.os + +cd "src" +$make clean +$make cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_run_as_compiler.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_run_as_compiler.sh new file mode 100755 index 00000000..f1ba01d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_run_as_compiler.sh @@ -0,0 +1,14 @@ +what=$(dirname $0)/../../ +what_real=$(cd "$what" && pwd -P) +dest=~compiler/cinit-test + +set -e +sudo rsync -av "${what_real}/" "$dest" +sudo chown -R compiler "$dest" +sudo -u compiler "${dest}/scripts/internal/compile_local.sh" +sudo -u compiler "${dest}/src/cinit" & +sleep 13 +sudo -u compiler "${dest}/scripts/internal/stop_cinit.sh" + +# exit 0 for make +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_test.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_test.sh new file mode 100755 index 00000000..335f31ac --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/compile_test.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# yah - yet another hack + +host="$1" +what=$(dirname $0)/../../ + +rsync --exclude .git --exclude \*.o -av "${what}" "${host}:cinit" +ssh "${host}" "./cinit/scripts/internal/compile_local.sh" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/create_test_config.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/create_test_config.sh new file mode 100755 index 00000000..720ce969 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/create_test_config.sh @@ -0,0 +1,18 @@ +hier=$(dirname $0) + +set -e +${hier}/../cinit.install.standard.dirs +cat > /etc/cinit/svc/init/on << eof +#!/bin/sh +echo test1 +sleep 4 +echo test2 - \$@ +eof +chmod 0755 /etc/cinit/svc/init/on + +cat > /etc/cinit/svc/init/on.params << eof +es +scheint +zu +gehen +eof diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/find_right_version.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/find_right_version.sh new file mode 100755 index 00000000..759f23c8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/find_right_version.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +src="$(dirname $0)/../../" +src_abs=$(cd "$src" && pwd -P) + +for commit in $( git log --pretty=short | awk '/^commit/ { print $2 }'); do + set -e + cd "$src_abs" + temp=$(mktemp -d /tmp/cinit.XXXXXXXXXX) + git-archive --format=tar "$commit" | ( cd "$temp"; tar x ) + cd "${temp}/src" + set +e + make clean && make cinit && ./cinit + if [ "$?" -eq 0 ]; then + echo "Commit $commit is ok" + exit 0 + fi + echo "Broken $commit" + sleep 1 + set -e + rm -rf "$temp" +done + +exit 1 diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/indent_script b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/indent_script new file mode 100755 index 00000000..5e1a8b0d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/indent_script @@ -0,0 +1,67 @@ +#!/bin/sh +# Nico Schottelius (nico-linux at schottelius.org) +# indents like kr with a little bit more beauty look +# 13-May-2004 +# written for the monotone project, adapted for all my projects +# +# Copying: GPLv3 + +if [ $# -lt 1 ]; then + echo "$0: " + exit 1 +fi + +opts="" +opts="${opts} -bap" # --blank-lines-after-procedures +opts="${opts} -bbb" # --blank-lines-before-block-comments +opts="${opts} -bad" # --blank-lines-after-declarations +opts="${opts} -bbo" # --break-before-boolean-operator +opts="${opts} -br" # --braces-on-if-line +opts="${opts} -brs" # --braces-on-struct-decl-line +opts="${opts} -cdb" # --comment-delimiters-on-blank-lines +opts="${opts} -cbi0" # --case-brace-indentation +opts="${opts} -cdw" # --cuddle-do-while +opts="${opts} -ce" # --cuddle-else, see -br +opts="${opts} -ci0" # --continuation-indentation (see -lp) +opts="${opts} -cli3" # --case-indentation +opts="${opts} -cp33" # --else-endif-columnn +opts="${opts} -cs" # --space-after-cast +opts="${opts} -d0" # --line-comments-indentationn +opts="${opts} -di0" # --declaration-indentation +opts="${opts} -fca" # --format-all-comments +opts="${opts} -hnl" # --honour-newlines +opts="${opts} -i3" # --indent-level +opts="${opts} -ip0" # --parameter-indentation +opts="${opts} -l80" # --line-length +opts="${opts} -lc80" # --line-length +opts="${opts} -lp" # --continue-at-parentheses +opts="${opts} -lps" # --leave-preprocessor-space +opts="${opts} -nbc" # --no-blank-lines-after-commas +opts="${opts} -nbfda" # --dont-break-function-decl-args +opts="${opts} -nbfde" # NOT --break-function-decl-args +opts="${opts} -nfc1" # --dont-format-first-column-comments +opts="${opts} -npcs" # --no-space-after-function-call-names +opts="${opts} -nprs" # --no-space-after-parentheses +opts="${opts} -npsl" # --dont-break-procedure-type +opts="${opts} -nsaf" # --no-space-after-for +opts="${opts} -nsai" # --no-space-after-if +opts="${opts} -nsaw" # --no-space-after-while +opts="${opts} -npsl" # --dont-break-procedure-type +opts="${opts} -nut" # --no-tabs +opts="${opts} -nv" # --no-verbosity +opts="${opts} -npro" # --ignore-profile +opts="${opts} -pi0" # --paren-indentationn +opts="${opts} -ppi3" # preprocessor indent +opts="${opts} -sbi0" # --struct-brace-indentation +opts="${opts} -sc" # --start-left-side-of-comments +opts="${opts} -sob" # --swallow-optional-blank-lines +opts="${opts} -ss" # --space-special-semicolon + + + +for file in "$@"; do + indent $opts "$file" +done + # old: +# -ad \ +# -ts3 -nut -sc -ce -cdw -cli0 -nbc lp -ppi3 -di1 -c33 -cd33 -ncdb -ci3 -cp33 -cs -d0 -di0 -l75 -nfc1 -nfca -hnl -ip0 -nprs -saf -sai -saw -nsob -nss -npsl "$file" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/old/cdoc-man.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/old/cdoc-man.sh new file mode 100755 index 00000000..fc1adde5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/old/cdoc-man.sh @@ -0,0 +1,57 @@ +#!/bin/sh +# +# Nico Schottelius +# Date: 21-Aug-2005 +# Last Modified: - +# + +set -e + +[ $# -ne 1 ] && exit 23 + +SRC=$1 + +cd "$SRC" + +# +# Title heading +# +echo .TH $(cat "meta/name" "meta/man_section" "meta/date") + +# +# Name +# +echo .SH NAME +echo $(cat meta/name) - $(cat meta/short_description) + +# +# Synopsis +# +echo .SH SYNOPSIS +echo $(cat path) $(cat parameters) + +# +# description +# +echo .SH DESCRIPTION +echo $(cat long_description) + +# +# availability +# +for section in availability examples "see also" author; do + if [ -f "$section" ]; then + echo .SH $section | tr '[a-z]' '[A-Z]' + cat "$section" + fi +done + +# +# files +# +if [ -f files ]; then + echo .SH FILES + cat files | sed 's/\(.*\)/.IP "\1" /' +fi + +exit 0 diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/qemu-test.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/qemu-test.sh new file mode 100755 index 00000000..fd41312e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/qemu-test.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# Nico Schottelius +# 2007-09-03: For testing cinit in qemu +# + +emud="${HOME}/emu" +img="${emud}/debian-hd.img" +ddir="${emud}/mount" +loop=/dev/loop1 +fsck="/sbin/fsck.jfs" + +# my jfs is on the first partition, 512*63 bytes offset +offset="32256" + +set -e +set -x +sudo losetup -o "${offset}" "${loop}" "${img}" +sudo "${fsck}" "${loop}" +sudo mount "${loop}" "${ddir}" + +sudo umount "${loop}" +sudo losetup -d "${loop}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/stop_cinit.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/stop_cinit.sh new file mode 100755 index 00000000..86e4d82b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/stop_cinit.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# Linux specific, but don't care, I am the only person that should use it + +killall -TERM cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test-cmd.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test-cmd.sh new file mode 100755 index 00000000..dbfc5c73 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test-cmd.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Nico Schottelius +# 2007-09-27: Test cmd +# + + +echo "Testing cmd..." +sudo /sbin/cmd -s /etc/cinit/svc/init +sudo /sbin/cmd -p /etc/cinit/svc/init +sudo /sbin/cmd -v +sudo /sbin/cmd -V diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test/cinit-conf.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test/cinit-conf.sh new file mode 100755 index 00000000..0e29816e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test/cinit-conf.sh @@ -0,0 +1,23 @@ +#!/bin/sh +# Nico Schottelius +# Date: 2005-08-08 +# cinit-conf + +LIBEXEC=$(dirname $0)/../libexec/cinit-conf/ + +. ${LIBEXEC}/dialog-alias.sh + +dialog --calendar "Test" 0 0 18 12 1982 +dialog --checklist "Checktest" 0 0 0 item1 on item2 off item3 on +dialog --infobox "Infotext" 0 0 +dialog --inputbox "inputbox" 0 0 "vorgegebener text" +dialog --menu "menu" 0 0 0 tag1 item1 tag2 item2 bla blub +dialog --infobox "Infotext" 0 0 +dialog --msgbox "Infotext" 0 0 +dialog --radiolist "Infotext" 0 0 0 tag1 item1 on tag2 item2 off +dialog --textbox ~/.bashrc 0 0 +dialog --yesno "Ja oder nein?" 0 0 + +dialog --gauge "Checktest" 0 0 10 + +#dialog --inputmenu "Infotext" 0 0 0 tag1 item1 tag2 item2 bla blub diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test/cinit.uml.test b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test/cinit.uml.test new file mode 100755 index 00000000..f6ea7fb4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test/cinit.uml.test @@ -0,0 +1,40 @@ +#!/bin/sh +# Nico Schottelius +# build, install and test cinit in an uml image + +set -e +set -x + +###################### Params ######################################## +# where the cinit source can be found +CINIT=/root/cinit-0.1 + +# the image you want to put cinit on (I am using gentoo stage3) +IMG=stage3-p4.img + +# where to mount the image +MNT=/mnt/uml + +# what fsck to use +FSCK=fsck.jfs + +# the uml-linux-kernel +LINUX=./linux-2.6.11.11 + +# parameters to kernel - should not needed to be changed +LINUX_PARAM="ubd0=$IMG umid=cinit$$ init=/sbin/cinit" +###################################################################### +HIER=$(pwd) + + +"$FSCK" "$IMG" +mount "$IMG" "$MNT" -o loop +echo "$MNT" > "$CINIT/conf/destdir" +make -C "$CINIT" clean all install +umount "$MNT" + +"$FSCK" "$IMG" +"$LINUX" $LINUX_PARAM + +# restore console, if broken +#reset diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test_on_hosts.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test_on_hosts.sh new file mode 100755 index 00000000..afeb2627 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/test_on_hosts.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# yah + +hosts="penrose.bsdprojects.net jiffies.forkbomb.ch ddna044.netstream.ch" + +set -e + +for host in $hosts; do + echo "$1 on $host" + "$1" "$host" | sed "s/^/${host}: /" + echo "==> Finished $host" +done diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/valgrind b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/valgrind new file mode 100755 index 00000000..f769f9da --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/internal/valgrind @@ -0,0 +1 @@ +valgrind -v --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes --leak-resolution=high ./cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/report.compile b/software/cinit/browse_source/cinit-0.3pre19/scripts/report.compile new file mode 100755 index 00000000..ac591412 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/report.compile @@ -0,0 +1,18 @@ +#!/bin/sh +# Nico Schottelius +# 2006-12-08 +# Report compile success +# + +echo "cinit compile success report" +echo "----------------------------" +"$(dirname $0)/cinit.mkheader" +echo "----------------------------" +uname -a +echo "----------------------------" +. "$(dirname $0)/cinit.read-conf" +echo '$CC' +"$CC" -v +echo "----------------------------" +echo -n "Size: " +ls -l "$(dirname $0)/../src/cinit" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/README b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/README new file mode 100644 index 00000000..653e9875 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/README @@ -0,0 +1,2 @@ +Directory to keep scripts related to controlling vms, +which are used for testing cinit. diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/qemu-start.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/qemu-start.sh new file mode 100755 index 00000000..ac863a20 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/qemu-start.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +ROOT=$(dirname $0)/../root/Debian-3.0r0.ext2 + +qemu -hda "$ROOT" "$@" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-dir-start-plain.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-dir-start-plain.sh new file mode 100755 index 00000000..41b1b218 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-dir-start-plain.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start an image with its standard init +# + +ROOT="$1"; shift + +linux root=/dev/root rootflags="$ROOT" rootfstype=hostfs "$@" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-img-start-cinit.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-img-start-cinit.sh new file mode 100755 index 00000000..8a147d6d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-img-start-cinit.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start an image with cinit as init +# + +ROOT="$1"; shift + +linux "ubd0=$ROOT" init=/sbin/cinit "$@" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-img-start-plain.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-img-start-plain.sh new file mode 100755 index 00000000..311eaf13 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-img-start-plain.sh @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. +# +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . +# +# +# Start an image with its standard init +# + +ROOT="$1"; shift + +linux "ubd0=$ROOT" "$@" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-mount.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-mount.sh new file mode 100755 index 00000000..bd52286a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-mount.sh @@ -0,0 +1,3 @@ +SDIR=$(dirname $0) +DDIR=$(dirname $0)/root +sudo mount "$SDIR/Debian-3.0r0.ext2" "$DDIR" -o loop,acl,sync diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-shell.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-shell.sh new file mode 100755 index 00000000..e1776af2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-shell.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +ROOT=$(dirname $0)/Debian-3.0r0.ext2 + +linux ubd0=$ROOT init=/bin/sh "$@" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-umount.sh b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-umount.sh new file mode 100755 index 00000000..70453e35 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/vm/uml-umount.sh @@ -0,0 +1,3 @@ +SDIR=$(dirname $0) +DDIR=$(dirname $0)/root +sudo umount "$DDIR" diff --git a/software/cinit/browse_source/cinit-0.3pre19/scripts/wrapper/linux-sysvinit/shutdown b/software/cinit/browse_source/cinit-0.3pre19/scripts/wrapper/linux-sysvinit/shutdown new file mode 100755 index 00000000..b8cf3837 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/scripts/wrapper/linux-sysvinit/shutdown @@ -0,0 +1,207 @@ +#!/bin/sh +# Nico Schottelius (nico-cinit /at/ schottelius.org) +# 2007-05-21 +# Behave as being shutdown from Linux' sysvinit + +# Always needed variables / functions +_0_short=${0##*/} +_o_seperator=":" +_oecho_seperator=":" +_eecho_seperator=">" + +# ok-exit/echo +_oecho() +{ + echo "${_0_short}${_oecho_seperator}" "$@" +} + +_oexit() +{ + _oecho "$@" + exit 0 +} + +# error-exit/echo +_eecho() +{ + echo "${_0_short}${_oecho_seperator}" "$@" >&2 +} + +_eexit() +{ + _eecho "$@" + exit 1 +} + +# Program specific variables + +time_t=0 # -t sec +warn_only_k=0 # -k +reboot_r=0 # -r +halt_h=0 # -h +poweroff_P=0 # -P +cancel_c=0 # -c +time=-1 # [time] +message="" # [warning-message] +cmd="" # what to execute internally +pidfile="/var/run/cinit.shutdown" +pid="" +runs="" + +version="0.1" +version_date="2007-10-30" + +message_intro="The system is going down for" +message_reboot="reboot" +message_halt="halt" +message_poweroff="poweroff" + +# unimplemented: -a, -H, -f, -F +# deprecated and thus not implemented: -n + +# traping signals +trap_signals() +{ + _oexit "Aborted shutdown" +} + +# all the functions + +usage() +{ + +cat << cinit_usage + +*** cinit linux-sysvinit shutdown wrapper (Version ${version} ${version_date}) *** + +Usage shutdown [-akrhHPfnc] [-t secs] time [warning message] + -a: use /etc/shutdown.allow + -k: don't really shutdown, only warn. + -r: reboot after shutdown. + -h: halt after shutdown. + -P: halt action is to turn off power. + -H: halt action is to just halt. + -f: do a 'fast' reboot (skip fsck). + -F: Force fsck on reboot. + -n: do not go through "init" but go down real fast. + -c: cancel a running shutdown. + -t secs: delay between warning and kill signal. + ** the "time" argument is mandatory! (try "now") ** + +You can also call "cinit.{halt|reboot|poweroff}" directly +(instead of using this wrapper). + +cinit_usage + +exit 0 + +} + +warn() +{ + ( echo ""; echo "$@"; echo "" ) | wall + ( echo ""; echo "$@"; echo "" ) +} + +if [ "$#" -lt 1 ]; then + usage +fi + +# getopt! +while [ "$#" -ge 1 ]; do + arg="$1"; shift + + case "${arg}" in + -a|-F|-f|-n) + _oexit "Sorry, ${arg} is not implemented." + ;; + -t) + if [ "$#" -lt 1 ]; then + _eexit "-t needs the time argument" + fi + time_t="$1"; shift + ;; + -k) + warn_only_k=1 + cmd=true + ;; + -r) + reboot_r=1 + cmd=cinit.reboot + message_what="${message_reboot}" + ;; + -h|-H) + halt_h=1 + cmd=cinit.halt + message_what="${message_halt}" + ;; + -P) + poweroff_P=1 + cmd=cinit.poweroff + message_what="${message_poweroff}" + ;; + -c) + cancel_c=1 + ;; + *) + # time unset? + if [ "${time}" = -1 ]; then + time="${arg}" + [ "${time}" = "now" ] && time=0 + elif [ -z "${message}" ]; then + message="${arg}" + else + _eexit "Already specified time and message" + fi + ;; + esac +done + +if [ -f "${pidfile}" ]; then + pid=$(cat "${pidfile}") + runs=$(kill -CONT "${pid}" >/dev/null 2>&1 && echo yes) +fi + +# do cancel or abort or locking +if [ "${cancel_c}" -eq 1 ]; then + if [ "${runs}" ]; then + kill -TERM "${pid}" + _oexit "Terminated running shutdown at \"${pid}\"." + else + _eexit "Cannot abort shutdown, not running." + fi +fi + +if [ -z "${time}" ]; then + usage +fi + +if [ -z "${cmd}" ]; then + _eexit "You need to specify one of -h, -P, -H, -r." +fi + +# add lock +if [ "${pid}" ]; then + if [ "${runs}" ]; then + _eexit "Shutdown already running." + else + _oecho "Overwriting stale pidfile" + fi +fi +echo $$ > "${pidfile}" + +if [ "${message}" ]; then + warn "${message}" +fi + +# signals to abort on +trap trap_signals INT HUP TERM + +while [ "${time}" -gt 0 ]; do + warn "${message_intro} ${message_what} in ${time} minute(s)." + sleep 60 + time=$((${time}-1)) +done + +warn "${message_intro} ${message_what} now." +"${cmd}" diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/Makefile b/software/cinit/browse_source/cinit-0.3pre19/src/Makefile new file mode 100644 index 00000000..d540017e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/Makefile @@ -0,0 +1,196 @@ +# +# 2008 Nico Schottelius (nico-cinit at schottelius.org) +# +# This file is part of cinit. + +# cinit is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cinit is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cinit. If not, see . + +# +# Don't edit Makefiles, use conf/* for configuration. +# + +################################################################################ +# +# Build tools / locations +# + +CC=../tmpbin/cc +CFLAGS= +LD=../tmpbin/ld +LDFLAGS= +STRIP=../tmpbin/strip +SBIN=../sbin +DESTDIR= +#DESTDIR=/home/user/nico/emu/dst + +################################################################################ +# +# All objects / binaries +# depend on headers. More or less. FIXME: use gcc -M +# + +# double check cinit.* before installing and rename before! +#BIN=cinit.halt cinit.poweroff cinit.reboot cmd +BIN=cmd +CINIT=cinit +ALLBIN=${BIN} ${CINIT} + +# headers +CONFIG_H=include/config.h +CINIT_HEADERS=${shell cat include/listing} + +# objects +CINIT_OBJ=${shell cat object_lists/cinit} +HALTKILL_OBJ=${shell cat object_lists/halt.kill} +POWEROFFKILL_OBJ=${shell cat object_lists/poweroff.kill} +REBOOTKILL_OBJ=${shell cat object_lists/reboot.kill} +CMD_OBJ=${shell cat object_lists/cmd} + +# +# All objects +# +OBJ=${CINIT_OBJ} ${HALTKILL_OBJ} ${POWEROFFKILL_OBJ} ${REBOOTKILL_OBJ} + +################################################################################ +# +# End user target +# +#all: cinit cservice ccontrol sizecheck docs +all: ${ALLBIN} + + +################################################################################ +# +# Generic +# +${OBJ}: ${CINIT_HEADERS} + +%.o: %.c + ${CC} -c -o $@ $< + +################################################################################ +# +# First do configuration, so we include the right variables +# +Makefile: .configured + +.configured: ../conf/* + @../scripts/build/cinit.configure.os + @../scripts/build/cinit.configure.tools + @../scripts/build/cinit.configure.ipc + @../scripts/build/cinit.configure.mark + +${CINIT_OBJ}: ${CONFIG_H} + +${CONFIG_H}: ../conf/* + ../bin/cinit-conf.dump.as.c.header> ${CONFIG_H} + +################################################################################ +# +# Install targets +# + +#install: install-dir cinit cservice ccontrol +install: install-cinit install-utilities + +install-sbin: + install -d ${DESTDIR}/sbin + +install-utilities: install-sbin ${BIN} + @echo '*** Installing utilities ***' + install ${BIN} ${DESTDIR}/sbin + +install-cinit: install-sbin cinit + @echo '*** Installing cinit ***' + @echo "Need to delete cinit before reinstalling it {text file busy problem}" + rm -f ${DESTDIR}/sbin/cinit + install cinit ${DESTDIR}/sbin + +PATH_INIT=/sbin/init +PATH_SHUTDOWN=/sbin/reboot +PATH_REBOOT=/sbin/reboot +install-links: install-utilities install-cinit + [ -e "${DESTDIR}${PATH_INIT}" ] || ln -s /sbin/cinit "${DESTDIR}${PATH_INIT}" + [ -e "${DESTDIR}${PATH_SHUTDOWN}" ] || ln -s /sbin/cinit "${DESTDIR}${PATH_SHUTDOWN}" + [ -e "${DESTDIR}${PATH_REBOOT}" ] || ln -s /sbin/cinit "${DESTDIR}${PATH_REBOOT}" + +# FIXME: target broken +install-miniconf: + ./bin/cinit.install.miniconf + +# FIXME: target broken +install-dir: + ./bin/cinit.install.dir + + +################################################################################ +# +# Build targets +# + +cinit: ${CINIT_OBJ} + ${LD} $^ -o $@ + +cinit.halt: ${HALTKILL_OBJ} + ${LD} $^ -o $@ + +cinit.poweroff: ${POWEROFFKILL_OBJ} + ${LD} $^ -o $@ + +cinit.reboot: ${REBOOTKILL_OBJ} + ${LD} $^ -o $@ + +cmd: ${CMD_OBJ} + ${LD} $^ -o $@ + +################################################################################ +# +# Internal test targets +# + +uml: cinit cmd + ../../vm/uml/uml-mount.sh + cp cinit cmd ../../vm/uml/root/sbin/ + ../../vm/uml/uml-umount.sh + +umlstart: uml + ../../vm/uml/uml-start.sh + +SDIR=size +SNOW=$(shell date +%Y-%m-%d-%H%M%S) +sizecheck: cinit + ls -l cinit > $(SDIR)/$(SNOW) + cat $(SDIR)/$(SNOW) + git add $(SDIR)/$(SNOW) + git commit -m "Size: $$(awk '{ print $$5 }' $(SDIR)/$(SNOW))" + + +################################################################################ +# +# Clenaup targets +# + +.PHONY: clean +.PHONY: dist +.PHONY: distclean + +dist: distclean + +distclean: clean + rm -f os/current ipc/current .configured + +clean: + rm -f ../tmpbin/*.configured + rm -f ${BIN} ${CINIT_OBJ} ${CINIT} + find . -name \*.o -exec rm {} \; diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/Makefile.tests b/software/cinit/browse_source/cinit-0.3pre19/src/Makefile.tests new file mode 100644 index 00000000..0f4b4626 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/Makefile.tests @@ -0,0 +1,27 @@ +# +# Makefile for cinit tests +# +# Nico Schottelius +# +# Don't edit Makefiles, use conf/* for configuration. +# + +TEST_BUILD_ARGV=test/test_build_argv.o core/build_argv.o + +PROGS=test_build_argv test_build_argv_link + +tests: $(PROGS) + +test_build_argv: test/test_build_argv.o core/build_argv.o +test_build_argv_link: test/test_build_argv+link.o core/build_argv.o + +test_gen_svc_tree: test/test_gen_svc_tree.o svc/list_display_all.o \ + svc/list_display_all.o \ + svc/list_display_all.o \ + svc/list_display_all.o \ + svc/list_display_all.o \ + svc/gen_svc_tree.o \ + generic/mini_printf.o \ + svc/list_display_all.o + +test_openreadclose: test/test_openreadclose.o generic/openreadclose.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/README b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/README new file mode 100644 index 00000000..f66e0ddb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/README @@ -0,0 +1,4 @@ +-- OBSOLETED -- + -> This code is not in use in cinit-0.3 anymore! +util/ + External programs, which work with cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/STOPPED b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/STOPPED new file mode 100644 index 00000000..a0013ca6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/STOPPED @@ -0,0 +1,12 @@ +0. Definition Nachrichten +0.1 Definition returncodes und co... + + +1. execute_sth: finish, so we can use it for panic + +2. MSGQ: + beidseitig implemenntieren + ipc header integrieren + Dokumentieren + + conf/* von msgq saeubern diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/ccontrol.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/ccontrol.c new file mode 100644 index 00000000..95bc5212 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/ccontrol.c @@ -0,0 +1,94 @@ +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * ccontrol: control cinit + * part of cLinux/cinit + */ + +/* *stat() */ +#include +#include + +/* open */ +#include + +/* signal */ +#include + +/* PATH_MAX */ +#include + +/* str* */ +#include + +/* sockets */ +#include +#include +#include + +#include +#include +#include + +#include "cinit.h" + +/* global variable */ +struct listitem *list; +int sock; +pid_t cpid; + +/*********************************************************************** + * cservice - control cinit + */ + +#define USAGE_TEXT "ccontrol - control cinit\n\n" \ + "Usage:\n\nccontrol -[phurs]\n" \ + "\t-p\t- (power off) Power off the system\n" \ + "\t-h\t- (halt) Halt the system \n" \ + "\t-u\t- (update) Reboot (warm) and update cinit\n" \ + "\t-r\t- (reboot) Reboot the system\n" \ + "\t-s\t- (single user/rescue) Rescue mode\n\n" \ + +#define C_USAGE(error) usage(USAGE_TEXT,error) + +/*********************************************************************** + * ccontrol: control cinit + */ +int main(int argc, char **argv) +{ + /* argv */ + if(argc != 2) C_USAGE(MSG_ERR_LESS_ARGS); + if(argv[1][0] != '-') C_USAGE(MSG_ERR_BAD_ARGS); + + switch(argv[1][1]) { + case 'p': /* power off */ + LOG(MSG_POWER_OFF); + msg_reboot(CMD_POWEROFF); + break; + + case 'h': /* halt */ + LOG(MSG_HALT); + msg_reboot(CMD_HALT); + break; + + case 'r': /* reboot */ + LOG(MSG_REBOOT); + msg_reboot(CMD_REBOOT); + break; + + case 's': /* rescue */ + LOG(MSG_RESCUE); + msg_reboot(CMD_RESCUE); + break; + + case 'u': /* update */ + LOG(MSG_UPDATE); + msg_reboot(CMD_UPDATE); + break; + + default: + C_USAGE(MSG_ERR_BAD_ARGS); + break; + } + return 0; +} +/* cinit-0.2 return codes implemented - nothing changed*/ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/charp_to_flag.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/charp_to_flag.c new file mode 100644 index 00000000..ae4321a2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/charp_to_flag.c @@ -0,0 +1,43 @@ + +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Convert char pointer to uint32_t flag + * + */ + +#include /* strchr */ +#include /* NULL */ + +#include "cinit.h" /* cinit */ + +uint32_t charp_to_flag(char *str) +{ + uint32_t ret = 0; + + if(str != NULL) { + if(strchr(str, CINIT_CMD_SVC_WANTS) != NULL) + ret |= CINIT_QSN_SVC_WANTS; + if(strchr(str, CINIT_CMD_SVC_NEEDS) != NULL) + ret |= CINIT_QSN_SVC_NEEDS; + } + + return ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/cinit_get_svc_status.c01 b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/cinit_get_svc_status.c01 new file mode 100644 index 00000000..cdc9d8c2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/cinit_get_svc_status.c01 @@ -0,0 +1,54 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * Retrieves status of a service + */ + + +#include /* malloc */ +#include /* str* */ +#include /* integers */ + +#include "cinit.h" /* header for clients */ + +/* returns either the status (>0) + * or -1 on memory error + */ +int32_t cinit_get_svc_status(char *name) +{ + /* fixme: s32 int! */ + int tmp; + int32_t res; + char *p, *answer; + int offset = 0, len = strlen(name); + + p = malloc(len + 2 * sizeof(tmp)); + if(!p) return -1; + + /* code */ + tmp = CINIT_MSG_GET_STATUS; + strncpy(p,(char *) &tmp, sizeof(tmp)); + offset += sizeof(tmp); + + /* length */ + strncpy(&p[offset],(char *) &len, sizeof(len)); + offset += sizeof(len); + + /* data */ + strncpy(p, (char *) name, len); + + answer = cinit_send_to(p,len); + + if(answer) { + strncpy((char *) &res, answer, sizeof(res)); + free(answer); + } else { + res = -1; + } + + free(name); + return res; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/comm.h b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/comm.h new file mode 100644 index 00000000..4fbe8c50 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/comm.h @@ -0,0 +1,81 @@ +/*********************************************************************** + * + * 2006-2007 Nico Schottelius (nico-cinit (at) schottelius.org) + * + * part of cLinux/cinit + * + * Communication defines + */ + +#ifndef CINIT_COMM_HEADER +#define CINIT_COMM_HEADER + +#include /* PATH_MAX */ +#include /* pid_t */ + +/*********************************************************************** + * Commands the clients may issue to us + * maximum number of commands: 2^8 = 256 + */ +enum commands { + CMD_MIN='A', /* minimum command number */ + CMD_SVC_START, /* the client wants US to start a service */ + CMD_SVC_START_ONLY, /* start this service without dependencies */ + CMD_SVC_START_NEEDS, /* start this service, needs, but no wants */ + CMD_SVC_STOP, /* stop svc and all svcs that need it */ + CMD_SVC_STOP_ONLY, /* we should stop _only_ this service */ + CMD_SVC_STOP_WANTS, /* stop svc, all svcs that need or want it */ + CMD_CHG_STAT, /* the client reports a status change */ /* FIXME: NEEDED? */ + CMD_RESCUE, /* we should start the rescue mode */ /* UNIMPLEMENTED */ + CMD_HALT, /* halt the system */ + CMD_REBOOT, /* reboot the system */ + CMD_POWEROFF, /* poweroff the system */ + CMD_WBOOT, /* shutdown and restart everything */ /* UNIMPLEMENTED */ + CMD_INFO, /* send information about that service */ /* UNIMPLEMENTED */ + CMD_MAX , /* maximum command number */ +}; + +/* old + RT_ERR_COMM, * communication failed * + RT_ERR, * service starting failed * + RT_UNSPEC, * some kind of error, unspecified * + RT_SUCCESS, * successfully started: respawning or once * + RT_SVC_FAILED, * tried earlier, service failed, won't retry * + +*/ + +/*********************************************************************** + * client issues a command: start_command + */ +struct s_cmd { + char cmd; + pid_t pid; +}; + +/*********************************************************************** + * messages from the client + * Prefix: qst_ (question) + */ +struct msg_client { + pid_t pid; /* pid of the telling client */ + char cmd; /* which cmd is issued to us */ + char status; /* status of the service */ + char svc[PATH_MAX]; /* name of the service */ + char svc_orig[PATH_MAX]; /* the service, which wants to start us */ +}; + +/*********************************************************************** + * messages from the server + * Prefix: asw_ (answer) + */ + +/*********************************************************************** + * return short status + */ +struct asw_sstatus { + long mtype; + char status; + char msg[PATH_MAX]; +}; + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/cservice.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/cservice.c new file mode 100644 index 00000000..66be6563 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/cservice.c @@ -0,0 +1,164 @@ +/* + * (c) 2005 Nico Schottelius (nico-linux-cinit at schottelius.org) + * cservice: control cinit services + * part of cLinux/cinit + */ + +/* *stat() */ +#include +#include + +/* open */ +#include + +/* signal */ +#include + +/* PATH_MAX */ +#include + +/* str* */ +#include + +/* sockets */ +#include +#include +#include + +#include +#include +#include + +#include "cinit.h" + +/* global variable */ +struct listitem *list; +int sock; +pid_t cpid; + +/*********************************************************************** + * cservice - control cinit services + */ + +#define USAGE_TEXT "cservice - start and stop cinit services\n\n" \ + "cservice -[ear] \n" \ + "\t-e\t- (ein,on ) start a service (respawn if respawning is set)\n" \ + "\t-a\t- (aus,off) stop a respawing service\n" \ + "\t-r\t- (restart) stop and start a service\n" + +/*********************************************************************** + * fuzzy_path: allow other kinds of path specification .. + */ +char *fuzzy_path(char *rpath) +{ + char pathtmp[PATH_MAX]; + char *re = NULL; + + /* change to rpath */ + if(chdir(rpath) == -1) { + perror(rpath); + return NULL; + } + + /* get absolute name of rpath */ + if(! (int) getcwd(pathtmp,PATH_MAX)) { + perror(rpath); + return NULL; + } + + re = malloc( strlen(pathtmp) + 1); + + if(re != NULL) { + strcpy(re,pathtmp); + } + + return re; +} + +#define C_USAGE(error) usage(USAGE_TEXT,error) + +/*********************************************************************** + * cservice: the main part for controlling cinit from outside + */ +int main(int argc, char **argv) +{ + char *real_name = NULL; + + /* argv */ + if(argc != 3) C_USAGE(MSG_ERR_LESS_ARGS); + if(argv[1][0] != '-') C_USAGE(MSG_ERR_BAD_ARGS); + if(strlen(argv[1]) != 2) C_USAGE(MSG_ERR_ARGS_LEN); + + real_name = fuzzy_path(argv[2]); + + /* fuzzy path failed, exit! */ + if(real_name == NULL) { + return 1; + } + switch(argv[1][1]) { + case 'a': /* aus */ + case 'r': /* restart */ + switch( msg_svc_on_off(real_name,CMD_STOP_SVC) ) { + case ST_FAIL: + SERVICE_LOG(real_name,LOG_SVC_FAIL); + break; + case ST_OFF: + SERVICE_LOG(real_name,LOG_SVC_STOPED); + break; + case RT_ERR_COMM: + SERVICE_LOG(real_name,MSG_ERR_COMM); + break; + /* FIX THIS AFTER cinit-0.2 */ + case RT_TMPNOW: + case RT_ERR: + case RT_SVC_FAILED: + case RT_UNSPEC: + case RT_SUCCESS: + case ST_NEED_FAIL: + case ST_TMP: + case ST_ONCE: + case RT_NOTEXIST: + case ST_RESPAWN: +// SERVICE_LOG(real_name,"Ein bekanntest ding"); + break; +/* default: + SERVICE_LOG(real_name,MSG_SHOULD_NOT_HAPPEN); + break; */ + } + if( argv[1][1] == 'a') break; /* only continue if restarting */ + + case 'e': /* ein */ + switch (run_svc(real_name)) { /* run_svc fuzzys itself */ + case RT_NOTEXIST: + SERVICE_LOG(real_name,LOG_SVC_NOTEXIST); + break; + case RT_SVC_FAILED: + SERVICE_LOG(real_name,LOG_SVC_FAILED); + break; + case ST_FAIL: + SERVICE_LOG(real_name,LOG_SVC_FAIL); + break; + case ST_ONCE: + SERVICE_LOG(real_name,LOG_SVC_ONCE); + break; + case RT_ERR_COMM: + SERVICE_LOG(real_name,MSG_ERR_COMM); + break; + case ST_RESPAWN: + SERVICE_LOG(real_name,LOG_SVC_RESPAWN); + break; + case ST_NEED_FAIL: + SERVICE_LOG(real_name,LOG_NEED_FAIL); + break; + default: + SERVICE_LOG(real_name,MSG_SHOULD_NOT_HAPPEN); + break; + } + break; + default: + C_USAGE(MSG_ERR_BAD_ARGS); + break; + } + return 0; +} +/* uses cinit-0.2 return code style */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_change_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_change_status.c new file mode 100644 index 00000000..58c0bbf0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_change_status.c @@ -0,0 +1,72 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * change status of a service + * part of cinit + */ + +#include +#include +#include +#include + +#include "cinit.h" + +/* client: + * svc = service name + * status = status + * pid = pid + * sock2 = sock + * action = ACT_WRITE + * return: error code + * + * server: + * svc = buffer + * status = where to save status + * svc = bufferTH_MAX + * pid = where to save pid + * sock2 = nsock + * action = ACT_READ + * return: read service lenght + */ + +int do_change_status(char *svc, char *status, pid_t * pid, int sock2, + int action) +{ + int tmp; + + ssize_t(*fpoint) (int, void *, size_t); + + if(action == ACT_SERV) { + fpoint = read; + } else { + fpoint = (ssize_t(*)(int, void *, size_t)) write; + tmp = strlen(svc); + } + + if(fpoint(sock2, &tmp, sizeof(tmp)) == -1) { /* length */ + perror(MSG_ERR_IO); + return 0; + } + + if(tmp > PATH_MAX) { + return 0; + } + + if(fpoint(sock2, svc, tmp) == -1) { /* write service name */ + perror(MSG_ERR_IO); + return 0; + } + + if(fpoint(sock2, status, sizeof(*status)) == -1) { /* status */ + perror(MSG_ERR_IO); + return 0; + } + + if(fpoint(sock2, pid, sizeof(*pid)) == -1) { /* PID */ + perror(MSG_ERR_IO); + return 0; + } + + return tmp; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_reboot.c.orig b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_reboot.c.orig new file mode 100644 index 00000000..9c4c8331 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_reboot.c.orig @@ -0,0 +1,144 @@ +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-linux-cinit //@\\ schottelius.org) + * + * part of cLinux/cinit + * + * Communication defines + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "cinit.h" +#include "os.h" + +/*********************************************************************** + * sig_reboot + * Shutdown the system + */ + +void do_reboot(int signal) +{ + struct listitem *tmp; + struct timespec ts; + char **cmd; + int i; + + /* Let's disappear, we don't care about clients anymore */ + close(sock); + /********* first SIGTERM the respawning processes **********/ + tmp = list->before; + do { + /* kill service watcher, which will kill processes itself */ + if( tmp->status == ST_RESPAWN) { + kill(tmp->pid,SIGTERM); + } + tmp = tmp->before; + } while( tmp != list ); + + /********* now wait for the respawn watchers to return *****/ + tmp = list->before; + do { + if( tmp->status == ST_RESPAWN) { + /* wait until the respawn watcher terminated */ + waitpid(tmp->pid,&i,0); + } + + /* execute shutdown service FIXME: parallelize that?*/ + exec_svc(tmp->abs_path,CMD_STOP_SVC); + tmp = tmp->before; + } while( tmp != list ); + + /* now: all services are down, let's kill all other processes */ + if( kill(-1,SIGTERM) == -1) { + perror(MSG_TERMKILL); + } + + ts.tv_sec = SLEEP_KILL; /* defined in conf/sleep_kill */ + nanosleep(&ts,NULL); + + if( kill(-1,SIGKILL) == -1) { + perror(MSG_KILLBILL); + } + D_PRINTF("SIGKILL GESENDET"); + +/* THIS IS FUCKING UNCLEAN AND SHOULD BE CLEANED UP VERY MUCH!!! */ +#define CMD_CNT 4 + +#define UMOUNT_CMD "/bin/umount" +#define UMOUNT_ARG1 "-arfd" + +#define MOUNT_CMD "/bin/mount" +#define MOUNT_ARG1 "-o" +#define MOUNT_ARG2 "remount,ro" +#define MOUNT_ARG3 "/" + +#define RESCUE_CMD "/bin/sh" + + /* now: we are completley alone. umount everything, go to bed */ + cmd = (char **) malloc( (CMD_CNT+1) * ( sizeof (char*) ) ); + if(cmd) { + /* /bin/umount -a */ + cmd[0] = UMOUNT_CMD; + cmd[1] = UMOUNT_ARG1; + cmd[2] = NULL; + + i = fork(); + if(i == 0) { + execv(cmd[0],cmd); + _exit(1); /* if exec fails in child */ + } + + /* /bin/mount -o remount,ro / */ + cmd[0] = MOUNT_CMD; + cmd[1] = MOUNT_ARG1; + cmd[2] = MOUNT_ARG2; + cmd[3] = MOUNT_ARG3; + cmd[4] = NULL; + + i = fork(); + if(i == 0) { + execv(cmd[0],cmd); + _exit(1); /* if exec fails in child */ + } + } else { + _exit(1); + } + + switch(signal) { + case SIGTERM: /* power off */ + LOG(MSG_POWER_OFF); + cinit_poweroff(); + break; + case SIGHUP: /* reboot */ + LOG(MSG_REBOOT); + cinit_reboot(); + break; + case SIGUSR1: /* halt */ + LOG(MSG_HALT); + cinit_halt(); + break; + case SIGUSR2: /* rescue - destroy ourself */ + LOG(MSG_RESCUE); + cmd[0] = RESCUE_CMD; + cmd[1] = NULL; + execv(cmd[0],cmd); + panic(); + break; + case SIGCONT: /* update */ + LOG(MSG_UPDATE); + cmd[0] = CINIT_BIN; + cmd[1] = NULL; + execv(cmd[0],cmd); + panic(); + break; + } + + /* do not exit, Linux does that for us */ +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_result.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_result.c new file mode 100644 index 00000000..d302e4df --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_result.c @@ -0,0 +1,35 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * write result of action + * part of cinit + */ + +#include +#include +#include + +#include "cinit.h" + +/* one handler for read and write! */ +char do_result(int nsock, char *value) +{ + ssize_t(*fpoint) (int, void *, size_t); + char buf; + + if(value == NULL) { /* client */ + value = &buf; + fpoint = read; + } else { + fpoint = (ssize_t(*)(int, void *, size_t)) write; + } + + if(fpoint(nsock, value, 1) == -1) { /* result */ + perror(MSG_ERR_IO); + return RT_ERR_COMM; + } + + return *value; +} + +/* returns cinit-0.2-style return codes */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_svc_name.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_svc_name.c new file mode 100644 index 00000000..b56523d3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/do_svc_name.c @@ -0,0 +1,59 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * try to start a service + * part of cinit + */ + +#include +#include +#include +#include +#include "cinit.h" + +/* serv: + * get buf + * return length + * + * client: + * print svc + * return errorcode + */ +int do_svc_name(int sock2, char *svc, int action) +{ + int tmp; + + ssize_t(*fpoint) (int, void *, size_t); + + /* + * set pointers + */ + if(action == ACT_CLIENT) { + fpoint = (ssize_t(*)(int, void *, size_t)) write; + tmp = strlen(svc); + } else { + fpoint = read; + } + + /* + * read / write lenght + */ + if(fpoint(sock2, &tmp, sizeof(tmp)) == -1) { + perror(MSG_ERR_IO); + return 0; + } + + if(tmp > PATH_MAX) { + return 0; + } + + /* + * write/read service name + */ + if(fpoint(sock2, svc, tmp) == -1) { + perror(MSG_ERR_IO); + return 0; + } + + return tmp; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/exec_svc.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/exec_svc.c new file mode 100644 index 00000000..35e71ba4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/exec_svc.c @@ -0,0 +1,298 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * run_svc + * part of cinit + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cinit.h" + +/*********************************************************************** + * exec_svc: exec service abspath C_ON or C_OFF + */ + +inline pid_t exec_svc(char *abspath, int action) +{ + int tmp; + char *p, pathtmp[PATH_MAX]; + char *sbuf = NULL, **nargv = NULL, **nenv = NULL; + int fd, argc; + struct stat buf; + + cpid = fork(); + if(cpid == -1) { + perror(MSG_ERR_FORK); + return 0; + } + + /***** PARENT ******/ + if(cpid > 0) { + waitpid(cpid, &tmp, 0); + if(WIFEXITED(tmp)) { + if(!WEXITSTATUS(tmp)) { + return cpid; + } + } + SERVICE_LOG(abspath, LOG_SVC_FAIL); + return 0; + } + + /*********** CHILD EXECUTION ***********/ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + + if(action == CMD_START_SVC) { + strcat(pathtmp, C_ON); + } else { + strcat(pathtmp, C_OFF); + } + + /* + * readlink retrieves real name, if it is a symlink + */ + if((tmp = readlink(pathtmp, pathtmp, PATH_MAX)) == -1) { + + /* + * nothing there? fine, exit + */ + if(errno == ENOENT) { + _exit(0); + } else if(errno != EINVAL) { + perror(MSG_READLINK); + _exit(1); + } + + /* + * restore original name, file is not a link + */ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + + if(action == CMD_START_SVC) { + strcat(pathtmp, C_ON); + } else { + strcat(pathtmp, C_OFF); + } + tmp = strlen(pathtmp); + } else { + /* + * add '\0', readlink forgets it + */ + pathtmp[tmp] = '\0'; + } + ++tmp; /* the byte to add to memory for \0; neither + * readlink nor strlen count the \0 */ + + /********** build argv0 ********/ + nargv = (char **) malloc(sizeof(char *)); + if(nargv == NULL) + _exit(1); + + *nargv = (char *) malloc(tmp); + if(*nargv == NULL) + _exit(1); + + strcpy(*nargv, pathtmp); + + /********************** read params *********************/ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + + if(action == CMD_START_SVC) { + strcat(pathtmp, C_ONARG); + } else { + strcat(pathtmp, C_OFFARG); + } + + /* + * open params file + */ + if(!stat(pathtmp, &buf)) { + fd = open(pathtmp, O_RDONLY); + + if(fd == -1) { + perror(MSG_ERR_OPEN); + _exit(1); + } + + argc = 0; + + /* + * fill sbuf with content + */ + while((tmp = read(fd, pathtmp, PATH_MAX)) != 0) { + if(tmp == -1) { + perror(MSG_ERR_READ); + _exit(1); + } + + sbuf = realloc(sbuf, argc + tmp + 1); + strncpy(&sbuf[argc], pathtmp, tmp); + argc += tmp; + } + close(fd); + + if(argc) { + sbuf[argc] = '\0'; /* terminate string */ + } + } else { + sbuf = NULL; + } + + /************** build string **************/ + /* + * The idea is to reuse the allocated memory. We'll simply * replace the \n + * with \0 and set a char* to it. * We'll lose the last byte (the initial + * \0), but we * don't care, as we die some seconds later with execv() * oh, + * we'll only lose it, if the file is terminated by \n + */ + + argc = 1; /* argv0 */ + while(sbuf != NULL) { + p = strchr(sbuf, '\n'); + nargv = realloc(nargv, sizeof(char *) * (argc + 1)); + + if(nargv == NULL) { + LOG(MSG_ERR_ALLOC); + _exit(1); + } + + /* + * set to the beginning + */ + nargv[argc] = sbuf; + + /* + * if we found \n + */ + if(p != NULL) { + *p = '\0'; + } else { + /* + * set to the end of sbuf, not to the \0, but one before + */ + p = sbuf + (strlen(sbuf) - 1); + } + + /* + * if next byte is 0, the end of string is found + */ + if(*(p + 1) == '\0') { + sbuf = NULL; + } else { + sbuf = p + 1; + } + ++argc; + } + + /************ close argv list **************/ + nargv = realloc(nargv, sizeof(char *) * (argc + 1)); /* 1: NULL-pointer */ + if(nargv == NULL) { + LOG(MSG_ERR_ALLOC); + _exit(1); + } + nargv[argc] = NULL; /* terminate argv list */ + + /********************** read environment *********************/ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + if(action == CMD_START_SVC) { + strcat(pathtmp, C_ONENV); + } else { + strcat(pathtmp, C_OFFENV); + } + + argc = 0; + sbuf = NULL; + if(!stat(pathtmp, &buf)) { + fd = open(pathtmp, O_RDONLY); + + /* + * file exists, failing to open it is an error + */ + if(fd == -1) { + perror(MSG_ERR_OPEN); + _exit(1); + } + + while((tmp = read(fd, pathtmp, PATH_MAX)) != 0) { + if(tmp == -1) { + perror(MSG_ERR_READ); + _exit(1); + } + + sbuf = realloc(sbuf, argc + tmp + 1); + strncpy(&sbuf[argc], pathtmp, tmp); + argc += tmp; + } + close(fd); + if(argc) + sbuf[argc] = '\0'; /* terminate string */ + } + + /************** build environment string **************/ + argc = 0; + while(sbuf != NULL) { + p = strchr(sbuf, '\n'); + + nenv = realloc(nenv, sizeof(char *) * (argc + 1)); + if(nenv == NULL) { + LOG(MSG_ERR_ALLOC); + _exit(1); + } + nenv[argc] = sbuf; + + /* + * if we found \n + */ + if(p != NULL) { + *p = '\0'; + } else { + /* + * set to the end of sbuf, not to the \0, but one before + */ + p = sbuf + (strlen(sbuf) - 1); + } + + if(*(p + 1) == '\0') { + sbuf = NULL; + } else { + sbuf = p + 1; + } + ++argc; + } + + /************ close env list **************/ + nenv = realloc(nenv, sizeof(char *) * (argc + 1)); + if(nenv == NULL) { + LOG(MSG_ERR_ALLOC); + _exit(1); + } + nenv[argc] = NULL; + + /****************** EXECUTE ********************/ + + execve(nargv[0], nargv, nenv); + + /* + * we should never reach this block + */ + P_EXEC_FAILED(nargv[0]); + perror(MSG_ERR_EXECVE); + /* + * FIXME: remove debug, remove double printing without loosing info + */ + sleep(3); /* debug */ + _exit(1); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/main.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/main.c new file mode 100644 index 00000000..9016eac1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/main.c @@ -0,0 +1,106 @@ + +/* + * (c) 2006 Nico Schottelius (nico-linux-cinit at schottelius.org) + * main.c + * main part of cinit + */ + +#include /* ftok */ +#include /* msgget */ +#include /* perror */ +#include /* exit */ + +#include "cinit.h" + +/* global variables */ +struct listitem *list; +pid_t cpid; + +/*********************************************************************** + * the main procedure + */ + +int main(int argc, char **argv) +{ + char *initdir; + key_t msg_key; + int msq_id; + + initdir = CINIT_INIT; /* default init dir */ + list = NULL; /* list of services is empty currently */ + cpid = getpid(); /* no comment */ + + if(cpid != 1) { + usage(CINIT_VERSION, MSG_USAGE); + } + + /* + * set signal handlers + */ + set_signals(ACT_SERV); + + /* + * read arguments, profile support + */ + while(argc > 1) { + if(!strncmp(PROFILE, argv[argc - 1], strlen(PROFILE))) { + initdir = (char *) malloc(strlen(CINIT_DIR) + + strlen(&argv[argc - 1][strlen(PROFILE)]) + + 2); + if(initdir == NULL) { + panic(); + } + strcpy(initdir, CINIT_DIR); + strcat(initdir, SLASH); + strcat(initdir, &argv[argc - 1][strlen(PROFILE)]); + break; + } + argc--; + } + + /* + * tell the world we are there FIXME: do we really need three calls? + */ + mini_printf(MSG_BOOTING, 1); + mini_printf(initdir, 1); + mini_printf("\n", 1); + + if(chdir(CINIT_INIT) == -1) { + perror(MSG_CHDIR); + panic(); + } + + /* + * create message queues + */ + + /* + * start init or profile + */ + run_init_svc(initdir); + + /* + * free, if we malloc()ed before + */ + if(initdir != CINIT_INIT) { + free(initdir); + } + + /* + * wait until we recieved the signal to create the socket + */ + + /* + * our life is polling a socket + */ + plist.fd = sock; + plist.events = POLLIN | POLLPRI; + while(1) { + if(poll(&plist, 1, -1) != -1) { + if((plist.revents & POLLIN) == POLLIN || + (plist.revents & POLLPRI) == POLLPRI) { + sigio(sock); + } + } + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_change_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_change_status.c new file mode 100644 index 00000000..40a46946 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_change_status.c @@ -0,0 +1,30 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * tell cinit that I want change the status of a service + * part of cinit + */ + +#include +#include +#include +#include + +#include "cinit.h" + +/* FIXME: change return code validation */ + +int msg_change_status(char *svc, char status, pid_t pid) +{ + if(!begin_msg(CMD_CHG_STATUS)) { + return RT_ERR_COMM; + } + if(!do_change_status(svc, &status, &pid, sock, ACT_CLIENT)) { + return 0; + } + if(!do_result(sock, NULL)) { + return 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_reboot.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_reboot.c new file mode 100644 index 00000000..efe78ec6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_reboot.c @@ -0,0 +1,21 @@ +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * reboot/halt/poweroff/rescue + * part of cinit + */ + +#include +#include +#include +#include + +#include "cinit.h" + +/* we trust the caller */ +int msg_reboot(char cmd) +{ + if(!begin_msg(cmd)) return 0; + close(sock); + return 1; +} +/* clean for cinit-0.2 */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_svc_on_off.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_svc_on_off.c new file mode 100644 index 00000000..350d41fe --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/msg_svc_on_off.c @@ -0,0 +1,26 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * tell cinit that I want to start a service + * part of cinit + */ + +#include +#include +#include + +#include "cinit.h" + +/* ********************************************************************** + * action: 1=on, 0=off + */ +int msg_svc_on_off(char *svc, char action) +{ + if(!begin_msg(action)) + return RT_ERR_COMM; + if(!do_svc_name(sock, svc, ACT_CLIENT)) + return RT_ERR_COMM; + return (int) do_result(sock, NULL); +} + +/* returns cinit-0.2-style return codes */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/pipes b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/pipes new file mode 100644 index 00000000..581b1274 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/pipes @@ -0,0 +1,17 @@ + /* create pipes */ + if(pipe(pfd) == -1) { + perror(MSG_ERR_PIPE); + panic(); + } + /* our life is polling a socket */ + plist.fd = sock; + plist.events = POLLIN | POLLPRI; + while(1) { + if(poll(&plist, 1, -1) != -1) { + if( (plist.revents & POLLIN) == POLLIN || + (plist.revents & POLLPRI) == POLLPRI) { + sigio(sock); + } + } + } + diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/respawn_svc.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/respawn_svc.c new file mode 100644 index 00000000..d52984be --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/respawn_svc.c @@ -0,0 +1,114 @@ + +/* + * (c) 2005,2006 Nico Schottelius (nico-linux at schottelius.org) + * respawn_svc + * part of cinit + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cinit.h" + +/* run a service, gets (relative or absolute) path */ +pid_t respawn_svc(char *abspath) +{ + pid_t pid; + int tmp; + int pipefd[2]; + struct sigaction sa; + char delay[PATH_MAX + 1]; + + D_PRINTF(abspath); + + if(pipe(pipefd) == -1) { + perror(MSG_ERR_PIPE); + return 0; + } + + pid = fork(); + if(pid == -1) { + perror(MSG_ERR_FORK); + return 0; + } + + /******************** PARENT ********************/ + if(pid > 0) { + /* + * if we read anything, our child succeded + */ + if(read(pipefd[0], &tmp, sizeof(tmp)) == -1) { + perror(MSG_ERR_IO); + return 0; + } + return pid; /* return watchers pid */ + } + + /****************** CHILD: Service watcher ********************/ + sa.sa_handler = sig_terminate; + sigaction(SIGTERM, &sa, NULL); /* term = kill respawing process */ + /* + * sigterm handler should kill first our watching pid, reset the pid to 0 + * and then we'll kill ourselves + */ + + tmp = 1; + if(write(pipefd[1], &tmp, sizeof(tmp)) == -1) { + perror(MSG_ERR_IO); + _exit(1); + } + + /* + * try to read delay into sock + */ + strcpy(delay, abspath); + strcat(delay, SLASH); + strcat(delay, C_DELAY); + + /* + * reuse sock to specify delay + */ + sock = -1; + tmp = open(delay, O_RDONLY); + if(tmp != -1) { + pipefd[0] = read(tmp, &delay[0], PATH_MAX); + if(pipefd[0] > 0 && pipefd[0] <= PATH_MAX) { + delay[pipefd[0]] = 0; + sock = atoi(delay); + } + close(tmp); + } + + do { + /* + * exec_svc will set cpid accordingly + */ + if(!exec_svc(abspath, CMD_START_SVC)) { + if(cpid != 0) { + D_PRINTF("sloefen"); + sleep(SLEEP_SVC); + D_PRINTF("Zuende geschlafen"); + } + } + } while(cpid); /* cpid is reset by sig_terminate() */ + + /* + * FIXME: put most code of sig_terminate here, look for no_kill + */ + + /* + * start off task + */ + exec_svc(abspath, CMD_STOP_SVC); + + D_PRINTF("jetzt weg"); + _exit(0); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_init_svc.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_init_svc.c new file mode 100644 index 00000000..2cc30262 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_init_svc.c @@ -0,0 +1,57 @@ + +/*********************************************************************** + * + * 2005-2006 Nico Schottelius (nico-linux-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * run initial service(s) + */ + +#include +#include +#include +#include +#include + +#include "cinit.h" + +#include + +/*********************************************************************** + * start the first service + */ + +int run_init_svc(char *cinit_svc) +{ + pid_t pid; + + /* + * leave cinit alone + */ + pid = fork(); + + if(pid == -1) { /* err */ + print_errno(MSG_ERR_FORK); + return 0; + } else if(pid == 0) { /* child */ + cinit_ipc_sclose(); + set_signals(ACT_CLIENT); + + /* + * FIXME: open stderr, stdin, stdout to files / syslog / logable ? + * IMPLEMENT PER SERVICE! + */ + + run_svc(cinit_svc); + + _exit(0); /* nobody cares about us, so exit successfully + * anyway */ + } + /* + * parent exits, we don't care about our children + */ + return 1; +} + +/* ready for cinit-0.2 */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_init_svc2.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_init_svc2.c new file mode 100644 index 00000000..338b1a11 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_init_svc2.c @@ -0,0 +1,58 @@ + +/*********************************************************************** + * + * 2005-2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * run initial service(s) + */ + +#include /* _exit, fork */ + +#include "cinit.h" +#include "messages.h" +#include "ipc.h" + +int run_svc(char *rpath) +{ + rpath = "test"; + return 0; +} /* a hack to compile cinit for now */ + +int run_init_svc(char *cinit_svc) +{ + pid_t pid; + + /* + * leave cinit alone + */ + pid = fork(); + + if(pid == -1) { /* err */ + print_errno(MSG_ERR_FORK); + return 0; + } else if(pid == 0) { /* child */ + cinit_ipc_sclose(); + set_signals(ACT_CLIENT); + + if(!cinit_ipc_logon()) + _exit(1); + + /* + * FIXME: open stderr, stdin, stdout to files / syslog / logable ? + * IMPLEMENT PER SERVICE! + */ + + run_svc(cinit_svc); + + _exit(0); /* nobody cares about us, so exit successfully + * anyway */ + } + /* + * parent exits, we don't care about our children + */ + return 1; +} + +/* ready for cinit-0.2 */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_run_svcs.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_run_svcs.c new file mode 100644 index 00000000..b12cbb54 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_run_svcs.c @@ -0,0 +1,95 @@ + +/* + * cinit + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * run services parallel + */ +#include +#include +#include +#include +#include +#include +#include + +#include "cinit.h" + +/*********************************************************************** + * parallel run forked() run_svc() + */ + +int run_run_svcs(char *abspath) +{ + DIR *d_tmp = NULL; + struct dirent *tdirent; + char pathbuf[PATH_MAX + 1]; + pid_t pids[MAX_DEPS]; + int status, i, ret = 1; + + D_PRINTF(abspath); + + d_tmp = opendir(abspath); + + /* + * if there is no such dir, we are finished + */ + if(d_tmp == NULL) { + return 1; + } + + i = 0; + while((tdirent = readdir(d_tmp)) != NULL) { + /* + * ignore . and .. and everything with a . at the beginning + */ + if(*(tdirent->d_name) == '.') + continue; + + if(i < MAX_DEPS) { + pids[i] = fork(); + } else { + LOG(MSG_ERR_DEPS); + break; + } + + if(pids[i] == -1) { /* err */ + perror(MSG_ERR_FORK); + return 0; + } + + if(pids[i] == 0) { /* child */ + strcpy(pathbuf, abspath); + strcat(pathbuf, SLASH); + strcat(pathbuf, tdirent->d_name); + if(run_svc(pathbuf)) + _exit(0); + else + _exit(1); + } else { /* parent */ + ++i; + } + } + + closedir(d_tmp); + + /* + * wait for pids + */ + --i; /* the index is one too much since last i++ */ + while(i >= 0) { + waitpid(pids[i], &status, 0); + + /* + * if anything failed, we failed + */ + if(!WIFEXITED(status)) { + ret = 0; + } else { + if(WEXITSTATUS(status)) { + ret = 0; + } + } + --i; + } + return ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_svc.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_svc.c new file mode 100644 index 00000000..194c981f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/run_svc.c @@ -0,0 +1,144 @@ + +/* + * (c) 2005 Nico Schottelius (nico-cinit at schottelius.org) + * run_svc + * part of cinit + */ + +/* headers are clean */ +#include +#include +#include +#include +#include +#include +#include + +#include "cinit.h" + +#error "needs to be cleaned up" + +/*********************************************************************** + * run_svc: run a service and before all dependencies + */ +int run_svc(char *rpath) +{ + int tmp; + pid_t pid; + char abspath[PATH_MAX], pathtmp[PATH_MAX]; /* pathtmp will be misused */ + struct stat buf; + struct timespec ts; + + /******************* absolute PATH ***************/ + /* + * save current working dir + */ + if(!(int) getcwd(pathtmp, PATH_MAX)) { + print_errno(pathtmp); + return RT_UNSPEC; + } + + /* + * change to rpath + */ + if(chdir(rpath) == -1) { + print_errno(rpath); + return RT_NOTEXIST; + } + + /* + * get absolute name of rpath + */ + if(!(int) getcwd(abspath, PATH_MAX)) { + perror(abspath); + return RT_UNSPEC; + } + + /* + * change back + */ + if(chdir(pathtmp) == -1) { + perror(pathtmp); + return RT_UNSPEC; + } + D_PRINTF(abspath); + + /******************* REGISTER SERVICE ***************/ + do { + tmp = msg_svc_on_off(abspath, CMD_START_SVC); /* check status */ + + switch (tmp) { + case ST_FAIL: /* somebody failed before, we won't retry */ + return RT_SVC_FAILED; + break; + case ST_TMP: /* someone is working on it */ + ts.tv_sec = SLEEP_RERUN; + nanosleep(&ts, NULL); + break; + case ST_ONCE: /* somebody did our work */ + case RT_ERR_COMM: /* communication failed */ + case ST_RESPAWN: /* somebody does our work */ + case ST_NEED_FAIL: /* the needs failed before */ + return tmp; + break; + case RT_TMPNOW: /* do not go to default: */ + break; + default: + mini_printf(MSG_SHOULD_NOT_HAPPEN, 1); + return RT_UNSPEC; + break; + } + } while(tmp != RT_TMPNOW); + + /******************* BEGIN DEPENDENCIES ***************/ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + strcat(pathtmp, C_NEEDS); + + /* + * check for needs + */ + if(stat(pathtmp, &buf) == 0) { + if(!run_run_svcs(pathtmp)) { + SERVICE_LOG(abspath, LOG_NEED_FAIL); + msg_change_status(abspath, ST_NEED_FAIL, 0); + return ST_NEED_FAIL; + } + } + + /********** WANTS ************/ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + strcat(pathtmp, C_WANTS); + + if(stat(pathtmp, &buf) == 0) { + run_run_svcs(pathtmp); /* don't care about what happens with the want + * svc */ + } + + /******************* execute services ***************/ + strcpy(pathtmp, abspath); + strcat(pathtmp, SLASH); + strcat(pathtmp, C_RESPAWN); + + if(stat(pathtmp, &buf) == 0) { + pid = respawn_svc(abspath); + tmp = ST_RESPAWN; + } else { + pid = exec_svc(abspath, CMD_START_SVC); + tmp = ST_ONCE; + } + + if(!pid) { + msg_change_status(abspath, ST_FAIL, pid); + return ST_FAIL; + } + + if(!msg_change_status(abspath, tmp, pid)) { + return RT_ERR_COMM; + } + + return tmp; /* ST_ONCE || ST_RESPAWN */ +} + +/* cinit-0.2 return codes implemented */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/set_signals.c01 b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/set_signals.c01 new file mode 100644 index 00000000..ff35a78a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/set_signals.c01 @@ -0,0 +1,40 @@ +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * cinit.c + * part of cLinux/cinit + */ + +#include +#include +#include "cinit.h" + +void set_signals(int action) +{ + struct sigaction sa; + + D_PRINTF("Signale setzen"); + + if(action == ACT_SERV) { + sa.sa_handler=SIG_IGN; + } else { + sa.sa_handler=SIG_DFL; + } + sigaction(SIGINT,&sa,NULL); /* ignore ctr+c and ctr+alt+del */ + + /* what todo when a child exited, cleaning dead processes */ + if(action == ACT_SERV) { + sa.sa_handler=sig_child; +// SA_NOCLDSTOP + } + sigaction(SIGCHLD,&sa,NULL); + + /* signal handlers to do special things with: reboot */ + if(action == ACT_SERV) { + sa.sa_handler=sig_reboot; + } + sigaction(SIGUSR1,&sa,NULL); /* halt */ + sigaction(SIGUSR2,&sa,NULL); /* rescue */ + sigaction(SIGTERM,&sa,NULL); /* poweroff */ + sigaction(SIGHUP,&sa,NULL); /* reboot */ + +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/sig_terminate.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/sig_terminate.c new file mode 100644 index 00000000..bc7171fb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/sig_terminate.c @@ -0,0 +1,73 @@ + +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * terminate: terminate our watching pid + * part of cinit + */ + +#include +#include +#include +#include +#include +#include +#include +#include "cinit.h" + +/* ********************************************************************** + * terminate the watching service + */ +void sig_terminate(int signal) +{ + struct timespec ts; + int status; + + /* + * FIXME: only send SIGTERM, if not_kill does not exist + */ + if(kill(cpid, SIGTERM) == -1) { + if(errno != ESRCH) { + perror(MSG_TERMKILL); + } + } + + /* + * variabel delay + */ + if(sock > 0) { + ts.tv_sec = sock; + } else { + ts.tv_sec = SLEEP_KILL_SVC; /* defined in conf/sleep_kill_svc */ + } + + /* + * if it still exists... + */ + if(kill(cpid, 0) != -1) { + /* + * kill if there is a delay + */ + if(sock != 0) { + nanosleep(&ts, NULL); + status = kill(cpid, SIGKILL); + if(status == -1) { + if(errno != ESRCH) { + perror(MSG_TERMKILL); + } + } + } + } + + /* + * remove zombie if killed, if delay is zero wait for it + */ + waitpid(cpid, &status, 0); + + /* + * reset the watching pid to zero (NOT THE WATCHER's!) + */ + cpid = 0; + + D_PRINTF("muesste weg sein"); + return; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/test-signal.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/test-signal.c new file mode 100644 index 00000000..a081fb76 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/test-signal.c @@ -0,0 +1,56 @@ + +/* test case for glibc */ + +#include +#include /* sigaction, sigemtpyset */ +#include +#include +#include +#include +#include + +void sig_child(int tmp) +{ + struct timeval tv; + pid_t pid; + + while((pid = waitpid(-1, &tmp, WNOHANG)) > 0) { + gettimeofday(&tv, NULL); + printf("sighandler: %d\n", tv.tv_sec); + } +} + +int main() +{ + struct sigaction sa; + struct timeval tv; + struct timespec ts; + pid_t pid; + + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + + sa.sa_handler = sig_child; + sa.sa_flags = SA_NOCLDSTOP; + + sigaction(SIGCHLD, &sa, NULL); + + while(1) { + pid = fork(); + + /* + * child + */ + if(!pid) { + ts.tv_sec = 2; + nanosleep(&ts, NULL); + gettimeofday(&tv, NULL); + + printf("child: %d\n", tv.tv_sec); + return 0; + } + + ts.tv_nsec = 100000; + nanosleep(&ts, NULL); + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ancient/unused-coded/cinit_read_from.c b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/unused-coded/cinit_read_from.c new file mode 100644 index 00000000..54499be3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ancient/unused-coded/cinit_read_from.c @@ -0,0 +1,23 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * read data from cinit to the client + */ + + +#include "ipc.h" /* IPC */ + +/* gets a bunch of bytes and returns the answer from cinit */ +int cinit_read_from(char **dest, int len) +{ + if(!cinit_ipc_logon()) return NULL; + if(!cinit_ipc_connect()) return NULL; + + /* FIXME: add length to ipc function? */ + if(!cinit_ipc_csend(data)) return NULL; + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/client/cmd.c b/software/cinit/browse_source/cinit-0.3pre19/src/client/cmd.c new file mode 100644 index 00000000..d85e417c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/client/cmd.c @@ -0,0 +1,259 @@ +/******************************************************************************* + * + * 2007-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * cmd - the cinit client program - sends commands to cinit + * + */ + +#include /* getopt */ +#include /* signals */ +#include /* printf() */ +#include /* free() */ +#include /* strncmp */ + +#include /* integers */ +#include /* PATH_MAX */ + +#include "cmd.h" /* own header */ +#include "signals.h" /* which signal */ +#include "svc.h" /* service related */ +#include "intern.h" /* print_errno() */ + +#include "cinit.h" /* cinit external */ + +#define C_USAGE(error) usage(USAGE_TEXT,error) +#define MSG_IPC_ERROR "An IPC error occured while connecting to cinit. " \ + "Is cinit running?\n" +#define MSG_UNKNOWN_SVC "Unknown service: %s\n" +#define MSG_UNKNOWN_RET "Unknown return code: %d\n" + +enum { + NOTHING, + ENABLE, + DISABLE, + PID, + STATUS +} whattodo; + +/*********************************************************************** + * cmd: main + */ +int main(int argc, char **argv) +{ + char buf[CINIT_DATA_LEN]; + char *flag = NULL; + int opt; + int what = NOTHING; + uint32_t ret; + uint32_t (*fp)(char *, uint32_t); /* to select enable or disable */ + + + union { + uint32_t status; + pid_t pid; + } u; + + /* + * -d w(ants) excluded) + * -e n(eeds excluded) + * -d i(nclude everything) + */ + + /* check for + * d|e: + * check for flags + * p|s: + * continue with service + * h|v|V: print and exit + */ + while((opt = getopt(argc, argv, CMD_OPTIONS)) != -1) { + switch (opt) { + + /******************************************** + * Non-continuing parameters + */ + + /******************************************** + * help + */ + case 'h': + printf(CMD_USAGE); + return 0; + break; + + /********************************************/ + case 'v': /* get version of cinit */ + ret = cinit_get_version(buf); + switch (ret) { + case CINIT_ASW_OK: + printf("Version of cinit: %s\n", buf); + return 0; + break; + case CINIT_ASW_IPC_ERROR: + fprintf(stderr, MSG_IPC_ERROR); + what = 2; + break; + + default: /* should not happen */ + printf(MSG_UNKNOWN_RET, ret); + what = 3; + break; + } + return what; + break; + + /********************************************/ + case 'V': /* version */ + printf("Version of cmd: %s\n", CMD_VERSION); + return 0; + break; + + /********************************************/ + /* + * Continuing parameters + */ + + /********************************************/ + case 'e': /* enable service */ + what = ENABLE; + flag = optarg; + break; + + case 'd': /* disable service */ + what = DISABLE; + flag = optarg; + break; + + /********************************************/ + case 'p': /* get pid */ + what = PID; + break; + + /********************************************/ + case 's': /* get status */ + what = STATUS; + break; + + /********************************************/ + + default: + fprintf(stderr, + "Sorry, I did not understand what you want. Try -h, please.\n"); + return 1; + break; + } + } + + if(what == NOTHING) { + fprintf(stderr, + "That is not much you request from me. Try -h for help.\n"); + return 1; + } + + if(!path_absolute(argv[optind], buf, CINIT_DATA_LEN)) + return 1; + + fp = NULL; + switch (what) { + case ENABLE: + fp = cinit_svc_enable; + case DISABLE: + if(!fp) fp = cinit_svc_disable; + + u.status |= cinit_flag_to_uint32_t(flag); + + ret = fp(buf, u.status); + + switch (ret) { + case CINIT_ASW_OK: + printf("Set status of %s.\n", buf); + what = 0; + break; + + case CINIT_ASW_SVC_UNKNOWN: + printf(MSG_UNKNOWN_SVC, buf); + what = 1; + break; + + case CINIT_ASW_IPC_ERROR: + fprintf(stderr, MSG_IPC_ERROR); + what = 2; + break; + + default: /* should not happen */ + printf(MSG_UNKNOWN_RET, ret); + what = 3; + break; + } + break; + + case PID: + ret = cinit_svc_get_pid(buf, &(u.pid)); + switch (ret) { + case CINIT_ASW_OK: + printf("PID of %s: %d\n", buf, u.pid); + what = 0; + break; + + case CINIT_ASW_SVC_UNKNOWN: + printf(MSG_UNKNOWN_SVC, buf); + what = 1; + break; + + case CINIT_ASW_IPC_ERROR: + fprintf(stderr, MSG_IPC_ERROR); + what = 2; + break; + + default: /* should not happen */ + printf(MSG_UNKNOWN_RET, ret); + what = 3; + break; + } + break; + + case STATUS: + ret = cinit_svc_get_status(buf, &(u.status)); + switch (ret) { + case CINIT_ASW_OK: + printf("Status of %s is: %d\n", buf, u.status); + what = 0; + break; + + case CINIT_ASW_SVC_UNKNOWN: + printf("Unknown service: %s\n", buf); + what = 1; + break; + + case CINIT_ASW_IPC_ERROR: + fprintf(stderr, MSG_IPC_ERROR); + what = 2; + break; + + default: /* should not happen */ + printf(MSG_UNKNOWN_RET, ret); + what = 3; + break; + } + break; + } + + return what; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/client/halt.kill.c b/software/cinit/browse_source/cinit-0.3pre19/src/client/halt.kill.c new file mode 100644 index 00000000..eeb4c53a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/client/halt.kill.c @@ -0,0 +1,25 @@ + +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * Halt the system through a kill call + */ + +#include /* kill() */ + +#include "messages.h" /* MSG_* */ +#include "intern.h" /* print_errno() */ +#include "signals.h" /* signals mapping */ + +int main() +{ + if(kill(1, SIG_CINIT_HALT) == -1) { + print_errno(MSG_HALT_KILL); + return 1; + } + + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/client/poweroff.kill.c b/software/cinit/browse_source/cinit-0.3pre19/src/client/poweroff.kill.c new file mode 100644 index 00000000..7066fedc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/client/poweroff.kill.c @@ -0,0 +1,25 @@ + +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * Reboot the system through a kill call + */ + +#include /* kill() */ + +#include "messages.h" /* MSG_* */ +#include "intern.h" /* print_errno() */ +#include "signals.h" /* signals mapping */ + +int main() +{ + if(kill(1, SIG_CINIT_POWEROFF) == -1) { + print_errno(MSG_POWEROFF_KILL); + return 1; + } + + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/client/reboot.kill.c b/software/cinit/browse_source/cinit-0.3pre19/src/client/reboot.kill.c new file mode 100644 index 00000000..4592b379 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/client/reboot.kill.c @@ -0,0 +1,25 @@ + +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * Reboot the system through a kill call + */ + +#include /* kill() */ + +#include "messages.h" /* MSG_* */ +#include "intern.h" /* print_errno() */ +#include "signals.h" /* signals mapping */ + +int main() +{ + if(kill(1, SIG_CINIT_REBOOT) == -1) { + print_errno(MSG_REBOOT_KILL); + return 1; + } + + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/README b/software/cinit/browse_source/cinit-0.3pre19/src/comm/README new file mode 100644 index 00000000..b43969f2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/README @@ -0,0 +1,22 @@ +This directory contains the server (aka cinit) part of the communication process. + +All the communication functions do not depend on the underlying +inter process communication mechanism. Use the following functions: + + - send_command(): client function: sends a command to cinit + - send_service(): client function: send the service name to operate on + + - read_command(): server function: reads beginning of a command + * Extracts the command + * reads client identification (=pid) + * calls other functions, depending on the command send => switch() + - read_service(): server function: reads service + + - write_answer(): server function: answer? + * sends answers to clients => senseful? + + + TODO: + - define information function, that returns various information about + a service + diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_disable.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_disable.c new file mode 100644 index 00000000..94258487 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_disable.c @@ -0,0 +1,45 @@ +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * disables a service + * + */ + +#include "svc-intern.h" /* list_search */ +#include "cinit.h" /* structure: cinit_answer */ + + +/** + * Returns the answer to the disable request to the client. + */ +int answer_svc_disable(char *svc, struct cinit_answer *asr) +{ + struct listitem *tmp; + + tmp = list_search(svc); + if(!tmp) { + asr->ret = CINIT_ASW_SVC_UNKNOWN; + } else { + asr->ret = svc_disable(tmp); + asr->opt = 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_pid.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_pid.c new file mode 100644 index 00000000..2fdf11c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_pid.c @@ -0,0 +1,42 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * return pid of service + * + */ + +#include "svc-intern.h" /* VERSION */ +#include "cinit.h" /* structure: cinit_answer */ + +int answer_svc_pid(char *svc, struct cinit_answer *asr) +{ + struct listitem *tmp; + + tmp = list_search(svc); + if(!tmp) { + asr->ret = CINIT_ASW_SVC_UNKNOWN; + } else { + asr->ret = CINIT_ASW_OK; + asr->opt = tmp->pid; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_status.c new file mode 100644 index 00000000..99d0adf9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_status.c @@ -0,0 +1,43 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * returns status of service + * + */ + +#include /* strncpy */ +#include "svc-intern.h" /* VERSION */ +#include "cinit.h" /* structure: cinit_answer */ + +int answer_svc_status(char *svc, struct cinit_answer *asr) +{ + struct listitem *tmp; + + tmp = list_search(svc); + if(!tmp) { + asr->ret = CINIT_ASW_SVC_UNKNOWN; + } else { + asr->ret = CINIT_ASW_OK; + asr->opt = tmp->status; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_stop.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_stop.c new file mode 100644 index 00000000..73d32f8d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_svc_stop.c @@ -0,0 +1,43 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Disable a service (with or without dependencies) + * + */ + +#include "cinit.h" /* structure: cinit_answer */ + +int answer_svc_stop(char *svc, struct cinit_answer *asr) +{ + struct listitem *tmp; + + tmp = list_search(svc); + if(!tmp) { + asr->ret = CINIT_ASW_SVC_UNKNOWN; + } else { + if(tmp->status & (CINIT_ST_RESPAWNING | CINIT_ST_ONCE_RUN)) { + asr->ret = svc_disable(tmp); + } else { /* not running, nothing todo */ + asr->ret = CINIT_ASW_OK; + } + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_version.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_version.c new file mode 100644 index 00000000..e57cf552 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/answer_version.c @@ -0,0 +1,35 @@ + +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * return version of cinit + * + */ + +#include "config.h" /* VERSION */ +#include "cinit.h" /* structure: cinit_answer */ + +int answer_version(struct cinit_answer *asr) +{ + asr->ret = CINIT_ASW_OK; + cinit_cp_data(asr->data, VERSION); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/cinit_append_data.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/cinit_append_data.c new file mode 100644 index 00000000..46c8a3e9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/cinit_append_data.c @@ -0,0 +1,32 @@ + +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Append data to the existing field + * + */ + +#include /* strncpy */ +#include "cinit.h" /* CINIT_DATA_LEN */ + +void cinit_append_data(char data[], char *src) +{ + strncat(data, src, CINIT_DATA_LEN); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/cinit_cp_data.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/cinit_cp_data.c new file mode 100644 index 00000000..dd107ea8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/cinit_cp_data.c @@ -0,0 +1,32 @@ + +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * fill the data field of qsn and asn + * + */ + +#include /* strncpy */ +#include "cinit.h" /* CINIT_DATA_LEN */ + +void cinit_cp_data(char data[], char *src) +{ + strncpy(data, src, CINIT_DATA_LEN); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/comm/read_command.c b/software/cinit/browse_source/cinit-0.3pre19/src/comm/read_command.c new file mode 100644 index 00000000..3cc17300 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/comm/read_command.c @@ -0,0 +1,66 @@ + +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * cinit reads a command sent by a client, called by ipc listener + * + */ + +#include "cinit.h" /* structures */ +#include "intern.h" /* answer_svc_status() */ + +int read_command(struct cinit_question qsn, struct cinit_answer *asr) +{ + switch (qsn.cmd) { + case CINIT_QSN_GET_VERSION: + if(!answer_version(asr)) + return 0; + break; + + case CINIT_QSN_GET_STATUS: + if(!answer_svc_status(qsn.data, asr)) + return 0; + break; + + case CINIT_QSN_GET_PID: + if(!answer_svc_pid(qsn.data, asr)) + return 0; + break; + + case CINIT_QSN_SVC_DISABLE: + if(!answer_svc_disable(qsn.data, asr)) + return 0; + break; + + /* + * FIXME: stopped here case CINIT_MSG_SVC_ENABLE: + * if(!answer_svc_enable(qsn.data, asr)) return 0; break; + */ + + /* + * Unknown command: should not happen :-) + */ + default: + return 0; + break; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/build_argv.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/build_argv.c new file mode 100644 index 00000000..8d1ef81d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/build_argv.c @@ -0,0 +1,192 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * Build **argv for execution in cinit way: + * 1. check whether cmd is a valid executable + * 2. try to read cmd.params and write parameters + * 3. try to read cmd.env and setup environment + * + * Returns: + * BA_OK: Everything went well, you can use the struct + * BA_NOTFOUND: Binary executable is not available + * BA_PARAMS: Reading the parameters failed (ignoring non-existence!) + * BA_ENV: Reading the environment failed (same as above) + * BA_OTHER: Other error + */ + +#include /* open() */ +#include /* *alloc() */ +#include /* readlink */ +#include /* errno */ +#include /* PATH_MAX */ +#include /* NULL */ +#include /* strchr */ +#include /* stat() */ + +#include "intern.h" +#include "build_argv.h" + + /* + * char *basename: something we should execute + * (*basename) + ".params" will be added as parameters + * (*basename) + ".env" will be added as environment + */ + +int cinit_build_argv(char *basename, struct ba_argv *bav) +{ + int tmp; + int argc; + char pathtmp[PATH_MAX + 1]; + char *sbuf = NULL; + char *p; + + /* + * sane values + */ + bav->argv = NULL; + bav->envp = NULL; + + /*********************************************************************** + * Try to get realname (for links) + */ + if((tmp = readlink(basename, pathtmp, PATH_MAX)) == -1) { + /* + * nothing there? + */ + if(errno == ENOENT) { + return BA_E_NOTFOUND; + } + if(errno != EINVAL) { + return BA_E_OTHER; + } + tmp = strlen(basename); + strncpy(pathtmp, basename, tmp); + } + pathtmp[tmp] = '\0'; + ++tmp; /* the byte to add to memory for \0; neither + * readlink nor strlen count the \0 */ + + /*********************************************************************** + * prepare argv0 + */ + bav->argv = malloc(sizeof(char *)); + if(bav->argv == NULL) + return BA_E_MEM; + + *bav->argv = malloc(tmp); + if(*(bav->argv) == NULL) + return BA_E_MEM; + + strncpy(*(bav->argv), pathtmp, tmp); + + /********************** read params *********************/ + /* + * FIXME check bounds! + */ + strcpy(pathtmp, basename); + strcat(pathtmp, C_PARAMS); + /* + * ORC_ERR_NONEXISTENT: Ok, have sbuf set to NULL ORC_OK: Ok, have a filled + * buffer (perhaps NULL, too) other: Error, print errno + */ + tmp = openreadclose(pathtmp, &sbuf); + + if(tmp != ORC_ERR_NONEXISTENT && tmp != ORC_OK) { + print_errno(pathtmp); + return BA_E_PARAMS; + } + + sbuf = strip_final_newline(sbuf); + + /*********************************************************************** + * Now split the string, converting \n to \0 + */ + argc = 1; /* argv0 */ + while(sbuf != NULL) { + p = strchr(sbuf, '\n'); + bav->argv = realloc(bav->argv, sizeof(char *) * (argc + 1)); + + if(bav->argv == NULL) + return BA_E_MEM; + bav->argv[argc] = sbuf; /* here begins the current argument */ + + if(p != NULL) { /* found another \n */ + *p = '\0'; + sbuf = p + 1; + } else { /* end of string */ + sbuf = NULL; + } + + ++argc; + } + + /************ close argv list **************/ + bav->argv = realloc(bav->argv, sizeof(char *) * (argc + 1)); + if(bav->argv == NULL) + return BA_E_MEM; + bav->argv[argc] = NULL; /* terminate argv list */ + + /********************** read environment *********************/ + strcpy(pathtmp, basename); + strcat(pathtmp, C_ENV); + + tmp = argc = 0; + sbuf = NULL; + + tmp = openreadclose(pathtmp, &sbuf); + + if(tmp != ORC_ERR_NONEXISTENT && tmp != ORC_OK) { + print_errno(pathtmp); + return BA_E_PARAMS; + } + + sbuf = strip_final_newline(sbuf); + + /************** build environment string **************/ + argc = 0; + while(sbuf != NULL) { + p = strchr(sbuf, '\n'); + + bav->envp = realloc(bav->envp, sizeof(char *) * (argc + 1)); + if(bav->envp == NULL) + return BA_E_MEM; + + bav->envp[argc] = sbuf; + + /* + * if we found \n + */ + if(p != NULL) { + *p = '\0'; + sbuf = p + 1; + } else { + sbuf = NULL; + } + ++argc; + } + + /************ close env list **************/ + bav->envp = realloc(bav->envp, sizeof(char *) * (argc + 1)); + if(bav->envp == NULL) { + return BA_E_MEM; + } + bav->envp[argc] = NULL; + + return BA_OK; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/cinit.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/cinit.c new file mode 100644 index 00000000..839d8deb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/cinit.c @@ -0,0 +1,127 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * The main file + * + */ + +#include /* getpid,chdir */ +#include /* str(ncmp,len,cpy,cat) */ +#include /* perror */ +#include /* malloc */ +#include /* struct sigaction */ + +#include "intern.h" /* general things */ +#include "messages.h" /* messages */ +#include "ipc.h" /* general ipc methods */ +#include "svc-intern.h" /* gen_svc_tree */ +#include "signals.h" /* signals used by cinit */ + +struct listitem *svc_list = NULL; /* services in a dependency tree */ +struct dep *deps_pending = NULL; /* the first services to be started */ +int svc_exited; /* did some service exit? */ + +struct sigaction sigstages[SIGSTAGE_END][SIGCINIT_END]; +int cinit_global_signals[SIGCINIT_END]; + +int main(int argc, char **argv) +{ + char *initdir = CINIT_INIT; /* default init dir */ + + /* + * Is this really needed? pid_t cpid; + * + * if(cpid != 1) { mini_printf(CINIT_VERSION,2); mini_printf(MSG_USAGE,2); + * return 0; } + */ + + /* Bootup "logo" */ + mini_printf(MSG_BOOTING, 1); mini_printf(initdir, 1); mini_printf("\n", 1); + + /* Should we start a profile? */ + while(argc > 1) { + if(!strncmp(PROFILE, argv[argc - 1], strlen(PROFILE))) { + initdir = malloc(strlen(CINIT_SVCDIR) + + strlen(&argv[argc - 1][strlen(PROFILE)]) + 2); + if(initdir == NULL) { + panic(); + } + strcpy(initdir, CINIT_SVCDIR); + strcat(initdir, SLASH); + strcat(initdir, &argv[argc - 1][strlen(PROFILE)]); + break; + } + --argc; + } + + /* no configuration? - panic! */ + if(chdir(initdir) == -1) { + print_errno(initdir); + panic(); + } + + /* initialize communication (IPC) */ + if(!cinit_ipc_init()) panic(); + + /* Init signal handler */ + signal_init_map(sigstages, cinit_global_signals); + set_signals(SIGSTAGE_DAEMON); + + /* build service dependency tree */ + if(!gen_svc_tree(initdir)) panic(); + + /* unused now, free if allocated */ + if(strcmp(initdir, CINIT_INIT)) free(initdir); + + /* FIXME: what todo? + * change to /, so applications have that as cwd, too Is that really + * seneful? Does that help any application? If not, just for looking nice, + * that's not a reason to enable it. if(chdir(SLASH) == -1) { + * print_errno(SLASH); panic(); } + */ + + /* the main startup routine */ + if(!svc_tree_exec(deps_pending)) panic(); + + /* listen to commands after startup */ + while(1) { + /* react on service changes (=process exited) */ + if(svc_exited) svc_status_changed(deps_pending); + + /* handle the changes */ + if(deps_pending) svc_handle_pending(deps_pending); + + /* listen until we get a message or get interrupted */ + cinit_ipc_listen(); + + /* + * check dependency list: perhaps we need to restart something + */ + /* + * implement in cinit-0.3pre14/5 + */ + + // svc_tree_exec(deps_pending); + // reuse svc_tree_exec()? + // if(dep) { svc_start() .. ? + } + + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/do_reboot.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/do_reboot.c new file mode 100644 index 00000000..b9a3b8a0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/do_reboot.c @@ -0,0 +1,93 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Reboot: includes shutdown, reboot and poweroff + */ + +#include /* kill() */ +#include /* exit */ + +#include "signals.h" /* signal handling */ +#include "reboot.h" /* cinit_poweroff&co */ +#include "messages.h" /* messages */ +#include "svc-intern.h" /* shutdown_services */ +#include "intern.h" /* many functions */ +#include "ipc.h" /* disable ipc */ + +void do_reboot(int signal) +{ + /* + * do not listen to client requests anymore + * and tell the user what happens + */ + LOG(MSG_SHUTDOWN_START); + cinit_ipc_destroy(); + set_signals(SIGSTAGE_REBOOT); + + /* + * shutdown all services: take care about the dependency tree + */ + LOG(MSG_SHUTDOWN_SVC); + shutdown_services(svc_list); + + /* + * now: all services are down, let's kill all other processes + */ + LOG(MSG_SHUTDOWN_TERM); + if(kill(-1, SIGTERM) == -1) { + print_errno(MSG_TERMKILL); + } + + sleep_before_kill(); + + LOG(MSG_SHUTDOWN_KILL); + if(kill(-1, SIGKILL) == -1) { + print_errno(MSG_KILLBILL); + } + + /* + * Execute the last command + */ + LOG(MSG_SHUTDOWN_LAST); + execute_and_wait(CINIT_LAST); + + /* + * do what we really wanted to do + */ + switch (signal) { + case SIGTERM: /* power off */ + LOG(MSG_POWER_OFF); + cinit_poweroff(); + break; + case SIGHUP: /* reboot */ + LOG(MSG_REBOOT); + cinit_reboot(); + break; + case SIGUSR1: /* halt */ + LOG(MSG_HALT); + cinit_halt(); + break; + } + /* + * FIXME: should we exit? + */ + _exit(0); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/panic.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/panic.c new file mode 100644 index 00000000..16d6ed11 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/panic.c @@ -0,0 +1,50 @@ + +/******************************************************************************* + * + * 2005-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Execute something + */ + +#include /* execv */ + +#include "intern.h" +#include "messages.h" + +void panic(void) +{ + char *nargv[2]; + + if(execute_and_wait(CINIT_PANIC)) + _exit(0); + + /*********************************************************************** + * In case nothing helps, try to execute something that is always there. + * (conf/c_desaster) + */ + nargv[0] = C_DESASTER; + nargv[1] = NULL; + + if(execv(nargv[0], nargv) == -1) { + print_errno(MSG_FATAL_PANIC); + } + + /* We tried everything possible, die now. */ + _exit(1); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/set_signals.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/set_signals.c new file mode 100644 index 00000000..41ccfc8c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/set_signals.c @@ -0,0 +1,65 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Set signal handlers + */ + +#include /* sigaction, sigemtpyset */ +#include /* NULL */ + +//#include "intern.h" /* defines */ +//#include "reboot.h" /* reboot related */ +#include "signals.h" /* reboot related */ + +void set_signals(int stage) +{ + int i; + + for(i = 0; i < SIGCINIT_END; i++) { + sigaction(cinit_global_signals[i], &sigstages[stage][i], NULL); /* what + * todo + * when + * a + * child + * exited + */ + } + +// struct sigaction sa; + // sigemptyset(&sa.sa_mask); /* no other signals should be blocked */ + // sa.sa_flags = 0; +// if(action == ACT_SERV) { +// sa.sa_handler = sig_child; +// sa.sa_flags = SA_NOCLDSTOP; +// } else { +// sa.sa_handler = SIG_DFL; +// } + +// sigaction(SIGCHLD,&sa,NULL); /* what todo when a child exited */ + +// sa.sa_flags = 0; /* reset flags */ +// if(action == ACT_SERV) { +// sa.sa_handler = do_reboot; +// } +// sigaction(SIG_CINIT_HALT, &sa, NULL); /* halt */ +// sigaction(SIG_CINIT_POWEROFF, &sa, NULL); /* poweroff */ +// sigaction(SIG_CINIT_REBOOT, &sa, NULL); /* reboot */ +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/sig_child.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/sig_child.c new file mode 100644 index 00000000..08f15c02 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/sig_child.c @@ -0,0 +1,34 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * The child handler (may *not* exec other functions!) + * + */ + +#include "svc-intern.h" /* marking */ + +/*********************************************************************** + * sig_child: (c)collect the children + */ +void sig_child(int tmp) +{ + tmp = 2; /* FIXME: how to tell stupid gcc that tmp is a must? */ + svc_exited = 1; /* FIXME: catch possible race conditions in svc_status_changed() */ +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/core/signal_init_map.c b/software/cinit/browse_source/cinit-0.3pre19/src/core/signal_init_map.c new file mode 100644 index 00000000..a07395f6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/core/signal_init_map.c @@ -0,0 +1,66 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Define signal handlers / actions for the different internal stages + */ + +#include +#include "signals.h" +#include "reboot.h" +#include "intern.h" + +void signal_init_map(struct sigaction sigstages[SIGSTAGE_END][SIGCINIT_END], + int cinit_signals[SIGCINIT_END]) +{ + /* + * First map signals to index + */ + cinit_signals[SIGCINIT_HALT] = SIGUSR1; + cinit_signals[SIGCINIT_POWEROFF] = SIGTERM; + cinit_signals[SIGCINIT_REBOOT] = SIGHUP; + cinit_signals[SIGCINIT_CHILD] = SIGCHLD; + + /* + * Then add the actions for daemon + */ + sigstages[SIGSTAGE_DAEMON][SIGCINIT_HALT].sa_handler = do_reboot; + sigstages[SIGSTAGE_DAEMON][SIGCINIT_POWEROFF].sa_handler = do_reboot; + sigstages[SIGSTAGE_DAEMON][SIGCINIT_REBOOT].sa_handler = do_reboot; + + sigstages[SIGSTAGE_DAEMON][SIGCINIT_CHILD].sa_handler = sig_child; + sigstages[SIGSTAGE_DAEMON][SIGCINIT_CHILD].sa_flags = SA_NOCLDSTOP; + + /* + * Then add the actions for client (=fork> + */ + sigstages[SIGSTAGE_CLIENT][SIGCINIT_HALT].sa_handler = SIG_DFL; + sigstages[SIGSTAGE_CLIENT][SIGCINIT_POWEROFF].sa_handler = SIG_DFL; + sigstages[SIGSTAGE_CLIENT][SIGCINIT_REBOOT].sa_handler = SIG_DFL; + sigstages[SIGSTAGE_CLIENT][SIGCINIT_CHILD].sa_handler = SIG_DFL; + + /* + * Then add the actions for shutdown + */ + sigstages[SIGSTAGE_REBOOT][SIGCINIT_HALT].sa_handler = SIG_IGN; + sigstages[SIGSTAGE_REBOOT][SIGCINIT_POWEROFF].sa_handler = SIG_IGN; + sigstages[SIGSTAGE_REBOOT][SIGCINIT_REBOOT].sa_handler = SIG_IGN; + sigstages[SIGSTAGE_REBOOT][SIGCINIT_CHILD].sa_handler = SIG_IGN; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/execute_and_wait.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/execute_and_wait.c new file mode 100644 index 00000000..3816e5c5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/execute_and_wait.c @@ -0,0 +1,52 @@ + +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * Execute something, but fork() before + * + */ + +#include /* pid_t */ +#include /* waitpid */ +#include /* fork */ + +#include "messages.h" /* MSG_* */ +#include "intern.h" /* print_errno, execute_sth */ + +int execute_and_wait(char *svc) +{ + pid_t pid; + int status; + + /* + * fork + */ + pid = fork(); + + if(pid == -1) { + print_errno(MSG_ERR_FORK); + return 0; + } + + /* + * exec / child + */ + if(pid == 0) { + execute_sth(svc); /* exits itself */ + } + + /* + * wait / parent + */ + waitpid(pid, &status, 0); + + if(WIFEXITED(status)) { + if(WEXITSTATUS(status) == 0) { + return 1; + } + } + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/execute_sth.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/execute_sth.c new file mode 100644 index 00000000..79197769 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/execute_sth.c @@ -0,0 +1,41 @@ + +/*********************************************************************** + * + * 2006-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * Executes something: replaces us + */ + +#include /* _exit */ + +#include "intern.h" +#include "build_argv.h" +#include "messages.h" /* D_PRINTF */ + +void execute_sth(char *basename) +{ + int tmp; + struct ba_argv bav; + + tmp = cinit_build_argv(basename, &bav); + if((tmp = cinit_build_argv(basename, &bav)) != BA_OK) { + if(tmp != BA_E_MEM) { /* do not print something on memory errors */ + print_errno(basename); + } + _exit(1); + } + + /* + * tell the user what we execute + */ + mini_printf(MSG_INTRO_EXEC, 1); + mini_printf((bav.argv)[0], 1); + mini_printf("\n", 1); + + execve((bav.argv)[0], bav.argv, bav.envp); + print_errno(basename); + _exit(1); /* simply exit non-zero. That's enough for + * cinit to recognize it as faulty */ +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/file_exists.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/file_exists.c new file mode 100644 index 00000000..f96fe8bc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/file_exists.c @@ -0,0 +1,72 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * check whether file exists and is a file + * + */ + +#include /* errno */ +#include /* stat */ +#include /* NULL */ + +#include "intern.h" /* print_errno() */ +#include "svc-intern.h" /* svc_report_status() */ +#include "messages.h" /* messages.. */ + +int file_exists(char *filename) +{ + struct stat buf; + + /* + * check: - is it a link? if so, is it broken? report! - is it non existent? + * -> return non-existent - is it existent, but not a regular file? report! + */ + if(lstat(filename, &buf) == -1) { /* lstat fails? */ + if(errno == ENOENT) { + return FE_NOT; + } else { + print_errno(filename); + return FE_ERR; + } + } else { + if(S_ISLNK(buf.st_mode)) { /* is a link, check destination */ + if(stat(filename, &buf) == -1) { /* do real stat(): */ + if(errno == ENOENT) { + svc_report_status(filename, MSG_BROKENLINK, NULL); + return FE_NOLINK; + } else { + /* + * FIXME: MSG_*, ?? + */ + mini_printf("anderer fehler.\n", 1); + print_errno(filename); + return FE_ERR; + } + } + } + } /* caught all stat() errors */ + + if(!S_ISREG(buf.st_mode)) { + svc_report_status(filename, MSG_NONREGULAR, NULL); + return FE_OTHER; + } + + return FE_FILE; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/mini_printf.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/mini_printf.c new file mode 100644 index 00000000..752a2187 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/mini_printf.c @@ -0,0 +1,37 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Print the world! + * + */ + +#include + +void mini_printf(char *str, int fd) +{ + char *p; + + if(str == NULL) return; + + p = str; + while(*p) p++; + + write(fd, str, (size_t) (p - str)); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/openreadclose.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/openreadclose.c new file mode 100644 index 00000000..e9d65961 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/openreadclose.c @@ -0,0 +1,77 @@ + +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * read a file + * + */ + +#include /* open, read, close */ +#include /* strncpy */ +#include /* realloc */ +#include /* errno */ +#include /* NULL */ +#include /* open */ +#include "intern.h" /* ORC_* */ + +int openreadclose(char *filename, char **where) +{ + + int tmp; + int cnt; + int fd; + char buf[512]; + + *where = NULL; + + /* + * what a wonderful loop + */ + while((fd = open(filename, O_RDONLY)) == -1) { + if(errno == ENOENT) + return ORC_ERR_NONEXISTENT; + if(errno != EINTR) + return ORC_ERR_OPEN; + } + + cnt = 0; + while(1) { + tmp = read(fd, buf, 512); + + if(tmp == -1) { + if(errno == EINTR) + continue; + else + return ORC_ERR_READ; + } else if(tmp == 0) { + break; + } + + cnt += tmp; + *where = realloc(*where, cnt + 1); + if(*where == NULL) + return ORC_ERR_MEM; + + /* + * FIXME check correctness of copied buffer... and get some sleep..soon, + * very soon! + */ + strncpy(&(*where)[cnt - tmp], buf, tmp); + } + + while((fd = close(fd)) == -1) { + if(errno == EINTR) + continue; + return ORC_ERR_CLOSE; + } + + /* + * terminate string! + */ + (*where)[cnt] = '\0'; + + return ORC_OK; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/path_absolute.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/path_absolute.c new file mode 100644 index 00000000..9bafdc7d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/path_absolute.c @@ -0,0 +1,56 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * create an absulte path + * + */ + +#include /* chdir(),getcwd */ +#include /* PATH_MAX */ +#include "intern.h" /* print_errno */ +#include "messages.h" /* messages */ + +int path_absolute(char *relpath, char *newpath, size_t size) +{ + char oldpath[PATH_MAX + 1]; + + if(!getcwd(oldpath, PATH_MAX + 1)) { + print_errno(MSG_GETCWD); + return 0; + } + + if(chdir(relpath) == -1) { + print_errno(relpath); + return 0; + } + + if(!getcwd(newpath, size)) { + print_errno(relpath); + return 0; + } + + if(chdir(oldpath) == -1) { + print_errno(oldpath); + return 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/path_append.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/path_append.c new file mode 100644 index 00000000..084cc4c1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/path_append.c @@ -0,0 +1,31 @@ + +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * create path to needs + */ + +#include /* strlen */ +#include /* PATH_MAX */ + +#include "intern.h" /* mini_printf, PD_ERR */ + +int path_append(char *path, char *append) +{ + size_t end = strlen(path); + + if(strcmp(&path[end - 1], SLASH)) { + if((end + strlen(SLASH) + strlen(append)) > PATH_MAX) + return 0; + strcat(path, SLASH); + } else { + if((end + strlen(append)) > PATH_MAX) + return 0; + } + strcat(path, append); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/print_errno.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/print_errno.c new file mode 100644 index 00000000..9aeab78f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/print_errno.c @@ -0,0 +1,25 @@ + +/*********************************************************************** + * + * stolen from tcpserver_blocker + * + * Author: Nico Schottelius + * Date: 2006-08-24 + * + * Print the error found in errno + */ + +#include /* strerror */ +#include /* errno */ + +#include "intern.h" /* mini_printf, PD_ERR */ + +void print_errno(char *msg) +{ + if(msg) { + mini_printf(msg, FD_ERR); + mini_printf(": ", FD_ERR); + } + mini_printf(strerror(errno), FD_ERR); + mini_printf("\n", FD_ERR); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/sleep_before_kill.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/sleep_before_kill.c new file mode 100644 index 00000000..d32ca274 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/sleep_before_kill.c @@ -0,0 +1,56 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Let's sleep a little bit + * + */ + +#include /* nanosleep */ +#include /* strtol() */ +#include /* errno */ + +#include "intern.h" /* print_errno */ +#include "messages.h" /* messages */ + +void sleep_before_kill() +{ + char *content; + int tmp; + struct timespec ts; + + if(openreadclose(CINIT_SLEEPFILE, &content) == ORC_OK) { + errno = 0; + tmp = strtol(content, NULL, 10); + if(errno != 0) + tmp = SLEEP_KILL; + free(content); + } else { + mini_printf(MSG_BUILTIN_SLEEP, 1); + tmp = SLEEP_KILL; + } + + ts.tv_sec = tmp; + ts.tv_nsec = 0; + + if(nanosleep(&ts, NULL) == -1) { + print_errno(MSG_ERR_SLEEP); + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/strip_final_newline.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/strip_final_newline.c new file mode 100644 index 00000000..924a23b6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/strip_final_newline.c @@ -0,0 +1,36 @@ + +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * If the last character is \n, shrink the memory and remove it + * + */ + +#include /* NULL */ +#include /* strchr */ +#include /* alloc */ + +char *strip_final_newline(char *str) +{ + char *p; + + /* + * don't get fooled by bad pointers + */ + if(str == NULL) { + return NULL; + } + + p = strrchr(str, '\n'); + if(p) { + if(*(p + 1) == '\0') { + *p = '\0'; /* DO NOT FORGET TO TERMINATE STRING */ + str = realloc(str, (p - str)); + } + } + + return str; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/generic/usage.c b/software/cinit/browse_source/cinit-0.3pre19/src/generic/usage.c new file mode 100644 index 00000000..5b4a26d7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/generic/usage.c @@ -0,0 +1,24 @@ + +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * usage: tell the world what we want - seriously no capitalism + * usage: tell the user what's wrong and a help text + * + */ + +#include /* _exit() */ +#include "intern.h" /* mini_printf */ + +void usage(char *banner, char *text) +{ + /* + * print banner + error message + */ + mini_printf(banner, 1); + mini_printf(text, 1); + _exit(1); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/build_argv.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/build_argv.h new file mode 100644 index 00000000..18b7bf5b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/build_argv.h @@ -0,0 +1,52 @@ +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * build **argv + */ + +#ifndef CINIT_BA_HEADER +#define CINIT_BA_HEADER + +/***************************************************************************** + * Defines: return values + */ +enum { + BA_OK, + BA_E_NOTFOUND, + BA_E_PARAMS, + BA_E_ENV, + BA_E_MEM, + BA_E_OTHER +}; + +/***************************************************************************** + * Structures + */ +struct ba_argv { + char **argv; + char **envp; +}; + +/***************************************************************************** + * Functions + */ +int cinit_build_argv(char *basename, struct ba_argv *bav); + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/cinit.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/cinit.h new file mode 100644 index 00000000..2f7421b6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/cinit.h @@ -0,0 +1,112 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Header file for external programs (in theory) + */ + +#ifndef __CINIT_EXTERNAL_HEADER +#define __CINIT_EXTERNAL_HEADER + +/* includes */ +#include /* required for functions */ +#include /* PATH_MAX */ +#include /* pid_t */ + +/* limits */ +#define CINIT_DATA_LEN (PATH_MAX+1) + +/* + * structures: independent of the ipc code! + */ + +/* messages from the client */ +struct cinit_question { + uint32_t cmd; + uint32_t opt; + char data[CINIT_DATA_LEN]; +}; + +/* messages from cinit */ +struct cinit_answer { + uint32_t ret; + uint32_t opt; + char data[CINIT_DATA_LEN]; +}; + +/*********************************************************************** + * codes for messages + */ +enum { /* questions */ + CINIT_QSN_GET_STATUS = 0x01, /* status of a service */ + CINIT_QSN_GET_PID = 0x02, /* get pid of a service */ + CINIT_QSN_GET_VERSION = 0x04, /* version of cinit */ + CINIT_QSN_SVC_DISABLE = 0x08, /* service: stop */ + CINIT_QSN_SVC_ENABLE = 0x10, /* service: start */ + CINIT_QSN_SVC_NEEDS = 0x20, /* in/exclude needs */ + CINIT_QSN_SVC_WANTS = 0x40, /* in/exclude wants */ + CINIT_QSN_SVC_LIST = 0x80, /* list services */ + + CINIT_QSN_QUESTION_END = 0xffff /* last message */ +}; + +enum { /* answers */ + CINIT_ASW_IPC_ERROR = 0x00, /* bad error */ + CINIT_ASW_OK = 0x01, /* general ok value */ + CINIT_ASW_SVC_UNKNOWN = 0x04, /* Services is not known */ + CINIT_ASW_SVC_DISABLED = 0x08, /* service: stop */ + CINIT_ASW_SVC_ENABLED = 0x10, /* service: start */ + CINIT_ASW_SVC_ERR = 0x20, /* in/excluded needs */ + CINIT_ASW_SVC_WANTS = 0x40, /* in/excluded wants */ + CINIT_ASW_SVC_NEEDS = 0x80, /* in/excluded needs */ + CINIT_ASW_ERR_INTERN = 0x100, /* cinit internal error */ + + CINIT_ASW_ANSWER_END = 0xffff /* last message */ +}; + +enum cinit_svc_flags { + CINIT_CMD_SVC_WANTS = 'w', + CINIT_CMD_SVC_NEEDS = 'n' +}; + +struct cinit_msg_msg { + int code; + char *msg; +}; + +//struct cinit_msg_msg cinit_codes2messages[] = { + +//} + +/* functions */ +int cinit_send_to(struct cinit_question *, struct cinit_answer *); +void cinit_cp_data(char data[], char *src); + +void cinit_prepare_comm(struct cinit_question *qsn, + struct cinit_answer *asr, + uint32_t cmd); + +uint32_t cinit_flag_to_uint32_t(char *); +uint32_t cinit_get_version(char *); +uint32_t cinit_svc_disable(char *svc, uint32_t flag); +uint32_t cinit_svc_enable(char *svc, uint32_t flag); +uint32_t cinit_svc_get_pid(char *, pid_t *status); +uint32_t cinit_svc_get_status(char *, uint32_t *); + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/cmd.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/cmd.h new file mode 100644 index 00000000..eb29be93 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/cmd.h @@ -0,0 +1,53 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Header file for the cmd (cinit management) + */ + +#ifndef CINIT_CMD_HEADER +#define CINIT_CMD_HEADER + +#define CMD_USAGE "cmd - cinit management\n\n" \ + "cmd -[de [nw]] -[ps] [service] -[hvV]\n\n" \ + " -d: disable service\n" \ + " n: without needs\n" \ + " Skip needs when en/disabling\n\n"\ + " w: without wants\n" \ + " Skip wants when en/disabling\n" \ + " -e: enable service\n" \ + " see above\n" \ + " -h: get help\n" \ + " this messages" \ + " -p: get process id (pid)\n" \ + " of specified service\n" \ + " -s: get status\n" \ + " of specified service\n" \ + " -v: get version\n" \ + " of cinit\n" \ + " -V: get version\n" \ + " of cmd\n" \ + "" + +#define CMD_OPTIONS "e::d::hpsvV" + +#define MSG_KILL "kill()" +#define CMD_VERSION "0.2" + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/intern.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/intern.h new file mode 100644 index 00000000..b214c9cc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/intern.h @@ -0,0 +1,125 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * internal stuff only :-) + * + */ + + +#ifndef _CINIT_INTERN_H +#define _CINIT_INTERN_H + +/* includes */ +#include /* pid_t */ +#include "config.h" /* paths, socket options, etc. */ +#include "cinit.h" /* structures: answer / question */ + +/*********************************************************************** + * Defines + */ +#define SLASH "/" +#define CINIT_CONFDIR CINIT_DIR SLASH C_CONFDIR +#define CINIT_PANIC CINIT_CONFDIR SLASH C_PANIC + +enum { /* FIXME: there are some default defines somewhere for that */ + FD_IN=0, + FD_OUT=1, + FD_ERR=2 +}; + +enum { /* returns of openreadclose */ + ORC_OK, /* everything went fine */ + ORC_ERR_NONEXISTENT, /* file does not exist */ + ORC_ERR_OPEN, /* error opening the file */ + ORC_ERR_READ, + ORC_ERR_CLOSE, + ORC_ERR_MEM +}; + +/* values for execute_sth: + * STRICT: print and error, if .../on does not exist + * NOSTRICT: no .../on is fine + */ +enum { + EXEC_STRICT, + EXEC_NOSTRICT +}; + +enum { + FE_FILE, /* file exists and is a file */ + FE_OTHER, /* file exists, but is no file */ + FE_NOT, /* file does not exist */ + FE_NOLINK, /* file is a broken symbolic link*/ + FE_ERR /* some error occured */ +}; + +/*********************************************************************** + * Paths + */ +#define CINIT_SVCDIR CINIT_DIR SLASH SVCDIR +#define CINIT_INIT CINIT_SVCDIR SLASH C_INIT +#define CINIT_TMNT CINIT_DIR SLASH C_TMP +#define CINIT_SOCK CINIT_TMNT SLASH C_SOCK +#define CINIT_BIN PREFIX SLASH "sbin" SLASH "cinit" + +#define CINIT_CONFDIR CINIT_DIR SLASH C_CONFDIR +#define CINIT_PANIC CINIT_CONFDIR SLASH C_PANIC +#define CINIT_LAST CINIT_CONFDIR SLASH C_LAST +#define CINIT_SLEEPFILE CINIT_CONFDIR SLASH SLEEP_BEFORE_KILL + +/* functions (used by server and client) */ +void mini_printf(char *str, int fd); +//void usage(char *banner, char *stext); + +/* core functions */ +void panic(void); +void sig_child(int signal); + +/* client / message functions */ +//int msg_svc_on_off(char *svc, char action); +//int msg_change_status(char *svc, char status, pid_t pid); +//int begin_msg(char cmd); + +/* client functions */ +pid_t respawn_svc(char *abspath); +char **read_file(char *file); +void sig_terminate(int signal); + +/* communication */ +int read_command(struct cinit_question, struct cinit_answer *); +int answer_svc_status(char *, struct cinit_answer *); +int answer_svc_pid(char *, struct cinit_answer *); +int answer_version(struct cinit_answer *); +int answer_svc_disable(char *, struct cinit_answer *); + +/* generic */ +void execute_sth(char *basename); +int execute_and_wait(char *svc); +int path_append(char *path, char *append); +int path_absolute(char *relpath, char *buf, size_t size); +int openreadclose(char *filename, char **where); +char *strip_final_newline(char *str); +int file_exists(char *filename); +void sleep_before_kill(); + +/* util */ +void print_errno(char *text); + +#endif /* INTERN */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/ipc.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/ipc.h new file mode 100644 index 00000000..e06bd734 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/ipc.h @@ -0,0 +1,55 @@ +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Prototypes for ipc handler + */ + +#ifndef CINIT_IPC_HEADER +#define CINIT_IPC_HEADER + +/* FIXME: change to cinit/types.h later */ +#include "cinit.h" + +/***************************************************************************** + * Functions: in server + */ +int cinit_ipc_init(void); /* init in init */ +int cinit_ipc_listen(void); /* listen in init */ +int cinit_ipc_sclose(void); /* fork of cinit come from outside! */ +int cinit_ipc_ssend(void *data); /* send to a client from the server */ +void cinit_ipc_destroy(void); /* destroy ipc handler in cinit */ + +/***************************************************************************** + * Functions: in clients + */ +int cinit_ipc_logon(void); /* logon to init */ + +int cinit_ipc_connect(void); /* connect to init */ + +int cinit_ipc_csend(struct cinit_question *); /* ask the server */ +int cinit_ipc_cread(struct cinit_answer *); /* read answer */ + +int cinit_ipc_logoff(void); /* logoff */ + +/***************************************************************************** + * Functions: shared + */ + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/listing b/software/cinit/browse_source/cinit-0.3pre19/src/include/listing new file mode 100644 index 00000000..bccdad37 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/listing @@ -0,0 +1,8 @@ +include/intern.h +include/config.h +include/ipc.h +include/messages.h +include/os.h +include/reboot.h +include/signals.h +include/svc.h diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/messages.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/messages.h new file mode 100644 index 00000000..53bf64bf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/messages.h @@ -0,0 +1,169 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * All messages + */ + +#ifndef _CINIT_MSG_H +#define _CINIT_MSG_H + +/* version */ +#define CINIT_VERSION "cinit-" VERSION +#define MSG_BOOTING CINIT_VERSION ": Booting from " + +#define MSG_DP ": " + +#define MSG_USAGE_1 ": fast executing, small and simple init " +#define MSG_USAGE_2 "with support for profiles\n" +#define MSG_USAGE_3 "\nError: cinit must be started as PID 1.\n" +#define MSG_USAGE MSG_USAGE_1 MSG_USAGE_2 MSG_USAGE_3 +#define MSG_ERR_FORK "fork" +#define MSG_ERR_IO "i/o" +#define MSG_ERR_OPEN "open" +#define MSG_ERR_PIPE "pipe" +#define MSG_ERR_READ "read" +#define MSG_ERR_EXECVE "execve" +#define MSG_ERR_ALLOC "memory allocation" +#define MSG_ERR_UMOUNT "umount" +#define MSG_ERR_MOUNT "mount" +#define MSG_NOT_DIR "not a directory" +#define MSG_CHDIR "chdir" +#define MSG_READLINK "readlink" +#define MSG_ERR_ADD_SVC "Adding service failed" +#define MSG_CMD_UNKNOWN "Unknown command" + +//#define MSG_ERR_DEPS "Too many dependencies" +//#define MSG_ERR_ACCEPT "accept" +//#define MSG_ERR_WAITPID "waitpid" +//#define MSG_ERR_POLL "poll" +//#define MSG_ERR_MODIFY "modify list failed" +//#define MSG_ERR_COMM "Communication failed" + +//#define MSG_ERR_LESS_ARGS "Too less arguments!" +//#define MSG_ERR_BAD_ARGS "Wrong arguments / parameter" +//#define MSG_ERR_ARGS_LEN "Wrong parameter length" + +#define LOG_SVC_STOPED "Service stoped" +#define LOG_SVC_ONCE "Started once" +#define LOG_SVC_RESPAWN "Respawns now" +//#define LOG_NEED_FAIL "One or more need failed" +//#define LOG_SVC_FAILED "Service already failed, not starting." +#define LOG_SVC_NOTEXIST "Service does not exist" + +#define MSG_EXEC_FAILED "Failed to execute " + +#define MSG_RESCUE "Switching to rescue mode ..." +#define MSG_UPDATE "Updating cinit ..." +#define MSG_HOT_REBOOT "Hot reboot in progress ..." + +#define MSG_SHOULD_NOT_HAPPEN "This should not happen, I do not know what todo!" + +/* DEBUG */ +#ifdef DEBUG +# include +# define D_PRINTF(x) ( printf("[%s:%d]: %s\n",__FILE__,__LINE__,x) ) +#else +# define D_PRINTF(x) if(0) {} +#endif + +/* macros */ +#define SERVICE_LOG(svc,message) { \ + mini_printf(svc,1); \ + mini_printf(MSG_DP,1); \ + mini_printf(message,1); \ + mini_printf("\n",1); \ +} +#define LOG(s) { \ + mini_printf(s,1); \ + mini_printf("\n",1); \ +} +#define P_START_SERVICE(name) { mini_printf(MSG_START_SVC,1); mini_printf(name,1); mini_printf("\n",1); } +#define P_EXEC_FAILED(name) { mini_printf(MSG_EXEC_FAILED,1); mini_printf(name,1); mini_printf("\n",1); } + +/* NEW (clean) Service status: Messages to the outside */ + +/* services: how they should be printed + * /etc/cinit/svc/long/name: started once + * /etc/cinit/svc/long/name: is respawning + * /etc/cinit/svc/long/name: FAILED (why it happened) + */ + +#define MSG_INTRO_CINIT "cinit:" +#define MSG_INTRO_SPACE MSG_INTRO_CINIT " " +#define MSG_INTRO_SVC MSG_INTRO_CINIT +#define MSG_INTRO_STOP MSG_INTRO_CINIT "stop: " +#define MSG_INTRO_EXEC MSG_INTRO_CINIT "exec: " + +/* FIXME: remove/append, but no intro! */ +#define MSG_INTRO_FAIL "FAILED " +#define MSG_INTRO_RESPAWN MSG_INTRO_CINIT "respawn: " +#define MSG_INTRO_OK MSG_INTRO_CINIT "ok: " + +#define MSG_SVC_FORK "fork() failed" +#define MSG_SVC_NEED_FAIL MSG_INTRO_FAIL "Needs failed for service" +#define MSG_SVC_FAIL MSG_INTRO_FAIL "Service failed!" + + +#define MSG_BUILTIN_SLEEP MSG_INTRO_STOP "Using built-in sleep" + +#define MSG_TREE_EXEC MSG_INTRO_SPACE "Execution of reverse service tree\n" + +/* general errors */ +#define MSG_GETCWD "Getcwd failed! Your system is most likely broken!" +#define MSG_FATAL_PANIC MSG_INTRO_SPACE "I tried everything, but even panic() failed: " +#define MSG_ERR_SLEEP MSG_INTRO_SPACE "Sleep did not succeed" +#define MSG_GETTIMEOFDAY MSG_INTRO_SPACE "gettimeofday() failed!" + +/* execution */ +//#define MSG_EXECUTING MSG_INTRO_EXEC + +/* stat() errors */ +#define MSG_NONREGULAR "Is not a regular file." +#define MSG_BROKENLINK "Is a broken link." + +/* Service messages */ +#define MSG_SVC_START "Starting... " +#define MSG_SVC_STOP "Stoping... " +#define MSG_SVC_RESTART "Restarted." +#define MSG_SVC_SLEEP "Sleeping before restart" +#define MSG_SVC_OK_ONCE "Started once." +#define MSG_SVC_OK_RESPAWN "Is respawning." + +/* Status messages */ +#define MSG_SHUTDOWN_START MSG_INTRO_STOP "\nBeginning the shutdown process..." +#define MSG_SHUTDOWN_SVC MSG_INTRO_STOP "Shutting down services now..." +#define MSG_SHUTDOWN_TERM MSG_INTRO_STOP "Terminating remaining processes..." +#define MSG_SHUTDOWN_KILL MSG_INTRO_STOP "Killing remaining processes..." +#define MSG_SHUTDOWN_LAST MSG_INTRO_STOP "Executing final service..." +#define MSG_POWER_OFF MSG_INTRO_STOP "Powering off..." +#define MSG_HALT MSG_INTRO_STOP "Halting system ..." +#define MSG_REBOOT MSG_INTRO_STOP "Rebooting ..." + +/* client messages */ +#define MSG_HALT_KILL "halt.kill" +#define MSG_REBOOT_KILL "reboot.kill" +#define MSG_POWEROFF_KILL "poweroff.kill" + + +/* reboot */ +#define MSG_TERMKILL MSG_INTRO_FAIL "SIGTERM" +#define MSG_KILLBILL MSG_INTRO_FAIL "SIGKILL" + +#endif /* _CINIT_MSG_H */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/os.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/os.h new file mode 100644 index 00000000..d6173a83 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/os.h @@ -0,0 +1,34 @@ +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * os specific functions + */ + +#ifndef CINIT_OS_HEADER +#define CINIT_OS_HEADER + +/***************************************************************************** + * Functions + */ +void cinit_halt(void); +void cinit_poweroff(void); +void cinit_reboot(void); + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/reboot.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/reboot.h new file mode 100644 index 00000000..4e490bd7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/reboot.h @@ -0,0 +1,49 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * reboot specific functions + * + */ + +#ifndef CINIT_REBOOT_HEADER +#define CINIT_REBOOT_HEADER + +/***************************************************************************** + * the main reboot function + */ +void do_reboot(int signal); + + +/***************************************************************************** + * os specific functions + */ +void cinit_reboot(void); +void cinit_halt(void); +void cinit_poweroff(void); + + +/***************************************************************************** + * Functions: abstract do_reboot + */ +#define cinit_do_reboot() do_reboot(SIGHUP) +#define cinit_do_halt() do_reboot(SIGUSR1) +#define cinit_do_poweroff() do_reboot(SIGTERM) + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/signals.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/signals.h new file mode 100644 index 00000000..7c5e2e92 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/signals.h @@ -0,0 +1,61 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Define signals to use: needs signal.h to be included before. + */ + +#ifndef CINIT_SIGNALS_HEADER +#define CINIT_SIGNALS_HEADER + +#define SIG_CINIT_HALT SIGUSR1 +#define SIG_CINIT_POWEROFF SIGTERM +#define SIG_CINIT_REBOOT SIGHUP +#define SIG_CINIT_CHILD SIGCHLD + +enum { + SIGSTAGE_REBOOT, + SIGSTAGE_DAEMON, + SIGSTAGE_CLIENT, + SIGSTAGE_END +}; + +enum { + SIGCINIT_HALT, + SIGCINIT_POWEROFF, + SIGCINIT_REBOOT, + SIGCINIT_CHILD, + SIGCINIT_END +}; + +#include +struct cinit_signal_map { + int signal; + struct sigaction sigstages; +}; + + +void signal_init_map(struct sigaction sigstages[SIGSTAGE_END][SIGCINIT_END], int cinit_signals[SIGCINIT_END]); +void set_signals(int stage); + +/* global vars */ +extern int cinit_global_signals[SIGCINIT_END]; /* maps signal codes to index */ +extern struct sigaction sigstages[SIGSTAGE_END][SIGCINIT_END]; + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/svc-intern.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/svc-intern.h new file mode 100644 index 00000000..0f6014c6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/svc-intern.h @@ -0,0 +1,108 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Internal service specifics + * + */ + +#ifndef __CINIT_SVC_INTERN_H +#define __CINIT_SVC_INTERN_H + +/* includes */ +#include /* pid_t */ +#include /* int types */ +#include "config.h" /* paths, socket options, etc. */ +#include "cinit.h" /* LEN */ + +/* service tree item */ +struct listitem { + struct listitem *prev; /* previous item */ + struct listitem *next; /* next item */ + + char abs_path[CINIT_DATA_LEN]; /* name of service */ + uint32_t status; /* current status */ + int waitpid; /* result of last waitpid call */ + pid_t pid; /* pid of service / respawn watcher */ + time_t start; /* time the process was started last time */ + time_t exited; /* time the process exited */ + + + struct dep *wanted_by; /* list of services that want this service */ + struct dep *needed_by; /* list of services that need this service */ + + struct dep *wants; /* list of services that this service wants */ + struct dep *needs; /* list of services that this service needs */ + + struct listitem *changed; /* list of changed services */ +}; + +/* list of dependencies */ +struct dep { + struct dep *prev; + struct dep *next; + struct listitem *svc; +}; + +/* variables */ +extern struct dep *deps_pending; /* the services to handle */ +extern struct listitem *svc_list; /* the list of services */ +extern int svc_exited; /* mark change */ + +/* list functions */ +struct listitem *list_insert(char *path, uint32_t status); +int list_delete_byname(char *path); +int list_delete_bypointer(struct listitem *); +int list_modify(char *path, int new_status, pid_t new_pid); +struct listitem *list_search(char *path); +struct listitem *list_search_pid(pid_t pid); + +/* service */ +struct listitem *svc_create(char *svc); +struct listitem *gen_svc_tree(char *svc); +int check_add_deps(struct listitem *svc, int type); +void dep_entry_add(struct dep **list, struct dep *new); +struct dep *dep_entry_del(struct dep *del); +int svc_tree_exec(struct dep *start); +uint32_t svc_set_status(struct listitem *li, uint32_t status); +int svc_should_respawn(struct listitem *li); +int svc_needs_status(struct listitem *li); +int dep_needs_wants_add(struct dep **list, struct listitem *svc, int type); +struct dep *dep_create(struct listitem *svc); +void svc_success(struct listitem *li); +void svc_fail(struct listitem *li); +void svc_report_status(char *svc, char *msg, char *err); +void shutdown_services(struct listitem *start); + +void svc_start(struct listitem *); +void svc_stop_deps(struct listitem *, int); +uint32_t svc_disable(struct listitem *); +int svc_status_changed(); +int svc_handle_pending(struct dep *pending); + + +/*********************************************************************** + * to decide whether to operate on needs or wants + */ +enum dep_types { + DEP_WANTS, + DEP_NEEDS +}; + +#endif /* _CINIT_SVC_INTERN_H */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/svc-messages.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/svc-messages.h new file mode 100644 index 00000000..14873228 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/svc-messages.h @@ -0,0 +1,48 @@ +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Service status messages + */ + + +#ifndef __CINIT_SVC_MESSAGES_H +#define __CINIT_SVC_MESSAGES_H + +#include "svc.h" + +struct cinit_svc_msg { + int code; + char *msg; +}; + +struct cinit_svc_msg cinit_svc_msg_codes[] = { + { CINIT_ST_SH_ONCE, "Service should be started once" }, + { CINIT_ST_SH_RESPAWN, "Service should respawn" }, + { CINIT_ST_ONCE_OK, "Service successfully started once" }, + { CINIT_ST_ONCE_FAIL, "Service failed to start once" }, + { CINIT_ST_RESPAWNING, "Service is respawning" }, + { CINIT_ST_NEED_FAILD, "One ore more needs failed" }, + { CINIT_ST_IN_LIST, "Service is in starter list" }, + { CINIT_ST_BAD_ERR, "Some strange error happened" }, + { CINIT_ST_ONCE_RUN, "Service is currently running once" }, + { CINIT_ST_NOT_EXIST, "This service does not exist" } +}; + +#endif /* _CINIT_SVC_H */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/include/svc.h b/software/cinit/browse_source/cinit-0.3pre19/src/include/svc.h new file mode 100644 index 00000000..ac8bc552 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/include/svc.h @@ -0,0 +1,66 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Service status (also exposed to the outside) + */ + + +#ifndef __CINIT_SVC_H +#define __CINIT_SVC_H + +/*********************************************************************** + * The real status types a service may have (ignore above) + * We have 32 Bits, we should use them ;-) + */ +enum cinit_svc_status { + /* first define basics */ + CINIT_ST_SH_ONCE = 0x1, /* service SHould be started once yx*/ + CINIT_ST_SH_RESPAWN = 0x2, /* service SHould respawn yx*/ + CINIT_ST_ONCE_OK = 0x4, /* service was successfully started once */ + CINIT_ST_ONCE_FAIL = 0x8, /* service failed to start */ + CINIT_ST_RESPAWNING = 0x10, /* service is respawning */ + CINIT_ST_NEED_FAILD = 0x20, /* this service is not started, need failed x*/ + CINIT_ST_IN_LIST = 0x40, /* this service is being started (= in list) */ + CINIT_ST_BAD_ERR = 0x80, /* some kind of error that SHOULD NOT happen */ + CINIT_ST_ONCE_RUN = 0x100, /* the once process is currently running yx*/ + CINIT_ST_NOT_EXIST = 0x200, /* there's no such service in our database */ + CINIT_ST_SH_STOP = 0x400, /* service was running, is being stopped x*/ + CINIT_ST_STOPPED = 0x800, /* service is stopped x*/ + CINIT_ST_STOP_FAIL = 0x1000 /* service failed to stop..strange situation */ +}; + +/*********************************************************************** + * Possibilities the needs of a service may have + */ +enum cinit_svc_needs_status { + CINIT_SNS_NEEDS_STARTED = 1, /* all needs are started. We may start, too */ + CINIT_SNS_NEEDS_FAILED, /* one ore more needs failed */ + CINIT_SNS_NEEDS_UNFINISHED /* one ore more needs are not yet started */ +}; +/*********************************************************************** + * How to start/stop a service + */ +enum cinit_svc_start_stop_options { + CINIT_SSSO_COMPLETE = 0x0, /* with all dependencies */ + CINIT_SSSO_WO_NEEDS = 0x1, /* without needs */ + CINIT_SSSO_WO_WANTS = 0x2, /* without wants */ + CINIT_SSSO_WO_BOTH = 0x4 /* without both */ +}; +#endif /* _CINIT_SVC_H */ diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/README b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/README new file mode 100644 index 00000000..cc1a1b7e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/README @@ -0,0 +1,2 @@ +This implementation uses the new realtime inferface of +posix instead of the old one functions. diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/cinit_ipc_init.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/cinit_ipc_init.c new file mode 100644 index 00000000..ef22b6d1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/cinit_ipc_init.c @@ -0,0 +1,21 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Create new queues: One for recieving, one for sending + * + */ + +#include + +#include "cinit.h" +#include "config.h" +#include "msgq-rt.h" + +int cinit_ipc_init(void) +{ + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/mq_open.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/mq_open.c new file mode 100644 index 00000000..445e7dc6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/mq_open.c @@ -0,0 +1,20 @@ +#include +#include + +int main() +{ + mqd_t readq = mq_open("/test",O_RDWR|O_CREAT|O_EXCL); + //mqd_t readq = mq_open("/bin/ls",O_RDWR|O_CREAT|O_EXCL); + + if(readq == -1) { + perror("oh nein"); + return 1; + } + mqd_t writeq = mq_open("/bin/cp",O_WRONLY|O_CREAT|O_EXCL); + if(readq == -1) { + perror("oh oh nein"); + return 1; + } +} + + diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/msgq-rt.h b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/msgq-rt.h new file mode 100644 index 00000000..d09a2808 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq-rt/msgq-rt.h @@ -0,0 +1,39 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Create new queues: One for recieving, one for sending + * + */ + +#ifndef CINIT_IPC_HEADER +#define CINIT_IPC_HEADER + +#define MSGQ_PATHNAME "/cinit" /* identifier */ + +/*********************************************************************** + * structures + */ + +/* messages _from_ the client _to_ the server */ +struct msgq_client { + long mtype; + pid_t pid; + struct msg_client msg; +}; + +/* messages _from_ the server _to_ the client */ +struct msgq_server_short { + long mtype; + struct asw_sstatus answer; +}; + +/*********************************************************************** + * Messages + */ + +#define MSG_MSGQ_DESTROY "msgq-destroy" + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/README.text b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/README.text new file mode 100644 index 00000000..c9a1acf2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/README.text @@ -0,0 +1,20 @@ +cinit/src/ipc/msgq: About this msqg implementation +=================================================== +Nico Schottelius +0.1, Initial Version from 2006-08-04 +:Author Initials: NS + +Intro here + +Introduction +------------ + +cinit opens a + +Files +----- +- README.text: This file +- cinit_init_ipc.c: Init +msgq.h +objects + diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_cread.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_cread.c new file mode 100644 index 00000000..ef811fec --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_cread.c @@ -0,0 +1,28 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Client reads messages from cinit + * + */ + +#include /* msg* */ +#include /* memcpy() */ +#include /* getpid() */ +#include "intern.h" /* print_errno */ +#include "msgq.h" /* msq specific */ + +int cinit_ipc_cread(struct cinit_answer *buf) +{ + struct cinit_msgq_server asr; + + if(msgrcv(__cinit_mq_in, &asr, sizeof(asr.asr), getpid(), 0) == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGRCV); + return 0; + } + memcpy(buf, &(asr.asr), sizeof(*buf)); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_csend.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_csend.c new file mode 100644 index 00000000..04683ab1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_csend.c @@ -0,0 +1,31 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Client sends messages to cinit + * + */ + +#include /* msgget */ +#include /* memcpy() */ +#include "intern.h" /* print_errno */ +#include "msgq.h" /* structure */ + +int cinit_ipc_csend(struct cinit_question *qsn) +{ + struct cinit_msgq_client msg; + + msg.mtype = 1; /* cinit = 1 */ + + /* copy question structure into the msgq-structure */ + memcpy(&(msg.qsn), qsn, sizeof(msg.qsn)); + + if(msgsnd(__cinit_mq_out, &msg, sizeof(msg.qsn), 0) == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGSEND); + return 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_destroy.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_destroy.c new file mode 100644 index 00000000..8186cba9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_destroy.c @@ -0,0 +1,24 @@ +/*********************************************************************** + * + * 2006-2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Destory ipc mechanism, cinit is gonna die soon. + * + */ + +#include /* msgget */ +#include /* NULL */ +#include "msgq.h" /* mq_in, mq_out */ +#include "intern.h" /* print_errno */ + +void cinit_ipc_destroy(void) +{ + if(msgctl(__cinit_mq_in, IPC_RMID, NULL) == -1) { + print_errno(__CINIT_MSG_MSGQ_DESTROY); /* print warning, continue */ + } + if(msgctl(__cinit_mq_out, IPC_RMID, NULL) == -1) { + print_errno(__CINIT_MSG_MSGQ_DESTROY); /* print warning, continue */ + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_init.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_init.c new file mode 100644 index 00000000..d5102f13 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_init.c @@ -0,0 +1,44 @@ +/*********************************************************************** + * + * 2006-2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Create new queues: One for recieving, one for sending + * + */ + +#include /* ftok */ +#include /* msgget */ +#include "intern.h" /* print_errno */ +#include "msgq.h" /* message queue */ + +int cinit_ipc_init(void) +{ + key_t k_tmp; + + /* to_server */ + k_tmp = ftok(__CINIT_MSGQ_PATHNAME, __CINIT_MSGQ_TO_SERVER); + if(k_tmp == -1) { + print_errno(__CINIT_MSG_MSGQ_FTOK); + return 0; + } + __cinit_mq_in = msgget(k_tmp, __CINIT_MSGQ_PERMS | IPC_CREAT); + if(__cinit_mq_in == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGGET); + return 0; + } + + k_tmp = ftok(__CINIT_MSGQ_PATHNAME, __CINIT_MSGQ_TO_CLIENT); + if(k_tmp == -1) { + print_errno(__CINIT_MSG_MSGQ_FTOK); + return 0; + } + __cinit_mq_out = msgget(k_tmp, __CINIT_MSGQ_PERMS | IPC_CREAT); + if(__cinit_mq_out == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGGET); + return 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_listen.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_listen.c new file mode 100644 index 00000000..fb4aac52 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_listen.c @@ -0,0 +1,69 @@ +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * Listen to messages + * + */ + +#include /* printf() */ + +#include /* msg* */ +#include /* errno */ + +#include "intern.h" /* print_errno */ +#include "msgq.h" /* structs */ + +int cinit_ipc_listen(void) +{ + int tmp; + struct cinit_msgq_client qsn; + struct cinit_msgq_server asr; + struct msqid_ds msq; + + tmp = msgrcv(__cinit_mq_in, &qsn, sizeof (qsn.qsn), 0, 0); + + /* message system problem */ + if(tmp == -1) { + if(errno != EINTR) { + print_errno(__CINIT_MSG_MSGQ_MSGRCV); + } + return -1; + } + + /* retrieve pid */ + if(msgctl(__cinit_mq_in, IPC_STAT, &msq) == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGCTL); + return -1; + } + + if(!read_command(qsn.qsn, &(asr.asr))) { + /* FIXME: mini_print */ + printf("read command failed\n"); + + asr.asr.ret = CINIT_ASW_ERR_INTERN; + } + + asr.mtype = msq.msg_lspid; + if(msgsnd(__cinit_mq_out, &asr, sizeof(asr.asr), 0) == -1) { + /* FIXME: do different things on differen errnos ... */ + print_errno("msgsend/answer"); + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_logoff.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_logoff.c new file mode 100644 index 00000000..ac8306d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_logoff.c @@ -0,0 +1,14 @@ +/*********************************************************************** + * + * 2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Disconnect from cinit + * + */ + +int cinit_ipc_logoff(void) +{ + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_logon.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_logon.c new file mode 100644 index 00000000..e15b12f7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/cinit_ipc_logon.c @@ -0,0 +1,44 @@ +/*********************************************************************** + * + * 2006-2007 Nico Schottelius (nico-cinit schottelius.org) + * + * part of cLinux/cinit + * + * Listen to messages + * + */ + +#include /* ftok */ +#include /* msgget */ +#include "intern.h" /* print_errno */ +#include "msgq.h" /* msgq constants */ + +int cinit_ipc_logon(void) +{ + key_t k_tmp; + + /* generiere nen schluessel: andersrum als im Server */ + k_tmp = ftok(__CINIT_MSGQ_PATHNAME, __CINIT_MSGQ_TO_CLIENT); + if(k_tmp == -1) { + print_errno(__CINIT_MSG_MSGQ_FTOK); + return 0; + } + __cinit_mq_in = msgget(k_tmp, 0); + if(__cinit_mq_in == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGGET); + return 0; + } + + k_tmp = ftok(__CINIT_MSGQ_PATHNAME, __CINIT_MSGQ_TO_SERVER); + if(k_tmp == -1) { + print_errno(__CINIT_MSG_MSGQ_FTOK); + return 0; + } + __cinit_mq_out = msgget(k_tmp, 0); + if(__cinit_mq_out == -1) { + print_errno(__CINIT_MSG_MSGQ_MSGGET); + return 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/msgq.h b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/msgq.h new file mode 100644 index 00000000..68398764 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/msgq.h @@ -0,0 +1,58 @@ +/*********************************************************************** + * + * 2006-2007 Nico Schottelius (nico-cinit //@\\ schottelius.org) + * + * part of cLinux/cinit + * + * header of message queuing interface + * + */ + +#ifndef __CINIT_IPC_HEADER +#define __CINIT_IPC_HEADER + +#include /* structures */ + +/*********************************************************************** + * configuration + */ + +#define __CINIT_MSGQ_PATHNAME "/bin/sh" /* should be on every *nix */ +#define __CINIT_MSGQ_TO_SERVER 'i' /* also for ftok */ +#define __CINIT_MSGQ_TO_CLIENT 'o' /* also for ftok */ +#define __CINIT_MSGQ_PERMS 0660 /* queue permissions */ + +/*********************************************************************** + * global variables: FIXME: rename, we're in client namespace! + */ +int __cinit_mq_in; /* input */ +int __cinit_mq_out; /* output */ + +/*********************************************************************** + * structures + */ + +/* messages _from_ the client _to_ the server */ +struct cinit_msgq_client { + long mtype; + struct cinit_question qsn; +}; + +/* messages _from_ the server _to_ the client */ +struct cinit_msgq_server { + long mtype; + struct cinit_answer asr; +}; + +/*********************************************************************** + * Messages + */ + +#define __CINIT_MSG_MSGQ_FTOK "ftok" +#define __CINIT_MSG_MSGQ_MSGGET "msgget" +#define __CINIT_MSG_MSGQ_MSGCTL "msgctl" +#define __CINIT_MSG_MSGQ_MSGSEND "msgsend" +#define __CINIT_MSG_MSGQ_MSGRCV "msgrcv" +#define __CINIT_MSG_MSGQ_DESTROY "msgq-destroy" + +#endif diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/objects b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/objects new file mode 100644 index 00000000..7c99d09f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/msgq/objects @@ -0,0 +1,5 @@ +ipc/current/cinit_ipc_init.o +ipc/current/cinit_ipc_listen.o +ipc/current/cinit_ipc_sclose.o +ipc/current/cinit_ipc_destroy.o +ipc/current/cinit_ipc_logon.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/begin_msg.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/begin_msg.c new file mode 100644 index 00000000..8c9ce5ea --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/begin_msg.c @@ -0,0 +1,24 @@ +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * tell cinit that I want to start a service + * part of cinit + */ + +#include +#include +#include "cinit.h" + +int begin_msg(char cmd) +{ + sock = connect_sock(sock); + if( sock == -1 ) { + return 0; + } + + if(write(sock,&cmd,sizeof(cmd)) == -1) { + perror(MSG_ERR_IO); + return 0; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/cinit_ipc_init.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/cinit_ipc_init.c new file mode 100644 index 00000000..88c310f4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/cinit_ipc_init.c @@ -0,0 +1,125 @@ +/* + * (c) 2005, 2006 Nico Schottelius (nico-linux at schottelius.org) + * cinit.c + * part of cLinux/cinit + */ + +/* *stat() */ +#include +#include + +/* open */ +#include + +/* siggnal */ +#include + +/* PATH_MAX */ +#include + +/* str* */ +#include + +/* sockets */ +#include +#include +#include + +#include +#include + +#include "cinit.h" + +/*********************************************************************** + * create a socket, when we recieved a signal + */ +int main(int argc, char **argv) +{ + struct sockaddr_un addr; + struct pollfd plist; + char *initdir; + + list = NULL; /* list of services is empty currently */ + initdir = CINIT_INIT; /* default init dir */ + + cpid = getpid(); + if(cpid != 1) { + usage(MSG_USAGE,MSG_NOT_ONE); + } + + set_signals(ACT_SERV); /* set signal handlers */ + + /* read args, profile support */ + while(argc > 1) { + if( !strncmp(PROFILE, argv[argc-1], strlen(PROFILE)) ) { + initdir = (char *) malloc( + strlen(CINIT_DIR) + + strlen(&argv[argc-1][strlen(PROFILE)]) + 2 + ); + if(initdir == NULL) { + panic(); + } + strcpy(initdir,CINIT_DIR); + strcat(initdir,SLASH); + strcat(initdir,&argv[argc-1][strlen(PROFILE)]); + break; + } + argc--; + } + + /* tell the world we are there FIXME: do we really need three calls? */ + mini_printf(MSG_CINIT,1); mini_printf(initdir,1); mini_printf("\n",1); + + if( chdir(CINIT_INIT) == -1) { + perror(MSG_CHDIR); + panic(); + } + + /******************** TMPDIR **********************/ + if( mount(C_TMPMOUNT,CINIT_TMNT,C_TMPFS,0,NULL) == -1 ) { + perror(MSG_ERR_MOUNT); + panic(); + } + + /******************** begin socket **********************/ + sock = socket(AF_UNIX,SOCK_STREAM,0); /* create socket */ + if( sock == -1 ) { + perror(MSG_SOCKET); + panic(); + } + + memset(&addr, 0, sizeof(addr) ); /* clear addr */ + strcpy(addr.sun_path, CINIT_SOCK); + addr.sun_family = AF_UNIX; + + if(bind(sock,(struct sockaddr *)&addr,sizeof(addr)) == -1) { + perror(MSG_BIND); + panic(); + } + + /* start listening */ + if(listen(sock,SOCK_QUEUE) == -1) { + perror(MSG_LISTEN); + panic(); + } + + /* start init or profile */ + run_init_svc(initdir); + + /* free, if we malloc()ed before */ + if(initdir != CINIT_INIT) { + free(initdir); + } + + /* our life is polling a socket */ + plist.fd = sock; + plist.events = POLLIN | POLLPRI; + while(1) { + if(poll(&plist, 1, -1) != -1) { + if( (plist.revents & POLLIN) == POLLIN || + (plist.revents & POLLPRI) == POLLPRI) { + sigio(sock); + } + } + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/cinit_ipc_listen.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/cinit_ipc_listen.c new file mode 100644 index 00000000..a174d78d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/cinit_ipc_listen.c @@ -0,0 +1,141 @@ +/* + * cinit + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * handle client requests + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "cinit.h" + +/*********************************************************************** + * sigio: client handling + */ + +/* we are called, if one or _more_ connections are waiting */ +void sigio(int socket) +{ + int tmp, nsock; + char buf[PATH_MAX+1], status; + struct listitem *list_tmp; + pid_t pid; + + while ( (nsock = accept(socket,(struct sockaddr *) NULL, + (socklen_t *) NULL)) != -1) { + + if( read(nsock,&buf[0],1) == -1) { + perror(MSG_ERR_READ); + close(nsock); + continue; + } + + switch(buf[0]) { + + /********************** START SERVICE *******************/ + case CMD_START_SVC: + tmp = do_svc_name(nsock,buf,ACT_SERV); + if(!tmp) break; + + buf[tmp] = 0; + list_tmp = list_search(buf); + + if(list_tmp != NULL) { /* service already exists, return status */ + status = list_tmp->status; + do_result(nsock,&status); + break; + } + + tmp = list_insert(buf,ST_TMP); /* add service */ + if(!tmp) { /* failed */ + LOG(MSG_ERR_ADD_SVC); + status = ST_FAIL; + } else { + status = RT_TMPNOW; + } + do_result(nsock,&status); + break; + + /********************** STOP (RESPAWNING) *******************/ + case CMD_STOP_SVC: + tmp = do_svc_name(nsock,buf,ACT_SERV); + if(!tmp) break; + buf[tmp] = 0; + list_tmp = list_search(buf); + + /* FIXME: + - handle off + - handle switching off once services + - perhaps remove old cinit code, which has respawing childs + */ + + if(list_tmp != NULL) { /* service exists */ + if(list_tmp->status == ST_RESPAWN) { + /* kill cinit watcher, which kills the real process */ + kill(list_tmp->pid,SIGTERM); + + /* wait for watcher to terminate */ + waitpid(list_tmp->pid,&tmp,0); + } + + status = ST_OFF; + if(!list_modify(buf,status,list_tmp->pid)) { + status = ST_FAIL; + } else { /* return status */ + status = list_tmp->status; + } + } else { /* no service there */ + status = RT_NOTEXIST; + } + do_result(nsock,&status); + break; + + /********************** CHANGE SERVICE STATUS *******************/ + case CMD_CHG_STATUS: + tmp = do_change_status(buf,&status,&pid,nsock,ACT_SERV); + if(!tmp) break; + buf[tmp] = 0; /* terminate buf */ + + if(!list_modify(buf,status,pid)) { + SERVICE_LOG(buf,MSG_ERR_MODIFY); + status = 0; + } + do_result(nsock,&status); + break; + + /********************** SPECIAL ACTIONS *******************/ + case CMD_REBOOT: + sig_reboot(SIGHUP); + break; + case CMD_POWEROFF: + sig_reboot(SIGTERM); + break; + case CMD_HALT: + sig_reboot(SIGUSR1); + break; + case CMD_RESCUE: + sig_reboot(SIGUSR2); + break; + case CMD_UPDATE: + sig_reboot(SIGCONT); + break; + default: + LOG(MSG_CMD_UNKNOWN); + break; + } + close(nsock); + } + + /* hier kommt man haeufiger herein, interrupted system call */ + if( errno != EAGAIN && errno != EINTR) { /* report, but don't panic */ + perror(MSG_ERR_ACCEPT); + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/connect_sock.c b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/connect_sock.c new file mode 100644 index 00000000..2c2d45de --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/ipc/socket+linux-tmpfs/connect_sock.c @@ -0,0 +1,38 @@ +/* + * (c) 2005 Nico Schottelius (nico-linux at schottelius.org) + * run_svc + * part of cinit + */ + +#include +#include +#include +#include +#include /* memset, strcpy */ + +#include "cinit.h" + +/* open socket connection to cinit-serv and close original socket */ +int connect_sock(int socke) +{ + int nsock; + struct sockaddr_un addr; + + close(socke); + + nsock = socket(PF_UNIX,SOCK_STREAM,0); + if( nsock == -1 ) { + perror(MSG_SOCKET); + return -1; + } + socke = sizeof(addr); + memset(&addr,0,socke); + strcpy(addr.sun_path, CINIT_SOCK); + addr.sun_family = AF_UNIX; + + if(connect(nsock,(struct sockaddr *)&addr,socke) == -1) { + return -1; + } + + return nsock; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/README b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/README new file mode 100644 index 00000000..096cc779 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/README @@ -0,0 +1,22 @@ +Build a small library that can be used by different applications, that provides: + + Constants / Macros: + for cinit_halt: + CINIT_HALT + CINIT_REBOOT + CINIT_POWEROFF + + for cinit_svc_start/stop: + CINIT_SVC_NORMAL + CINIT_SVC_NEEDS + CINIT_SVC_ONLY + CINIT_SVC_WANTS + + Functions: + void cinit_halt(int how); + int cinit_svc_start(char *svc, int how); + int cinit_svc_stop(char *svc, int how); + int cinit_svc_stop(char *svc, int how); + +This lib must then include: + - choosen ipc functions diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_flag_to_uint32_t.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_flag_to_uint32_t.c new file mode 100644 index 00000000..89949c8c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_flag_to_uint32_t.c @@ -0,0 +1,46 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Converts cher * to uint32_t for svc operations + * + */ + +#include /* NULL */ +#include /* strchr */ +#include /* integers */ + +#include "cinit.h" /* constants */ + +uint32_t cinit_flag_to_uint32_t(char *flag) +{ + uint32_t ret = 0; /* no flags */ + + if(flag != NULL) { + if(strchr(flag, CINIT_CMD_SVC_NEEDS)) { + ret |= CINIT_QSN_SVC_NEEDS; + } + if(strchr(flag, CINIT_CMD_SVC_WANTS)) { + ret |= CINIT_QSN_SVC_WANTS; + } + } + + return ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_get_version.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_get_version.c new file mode 100644 index 00000000..794e25bc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_get_version.c @@ -0,0 +1,38 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Retrieves version of cinit + */ + +#include "cinit.h" /* header for clients */ + +uint32_t cinit_get_version(char *buf) +{ + struct cinit_question qsn; + struct cinit_answer asr; + + cinit_prepare_comm(&qsn, &asr, CINIT_QSN_GET_VERSION); + if(!cinit_send_to(&qsn, &asr)) + return CINIT_ASW_IPC_ERROR; + cinit_cp_data(buf, asr.data); + + return asr.ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_halt.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_halt.c new file mode 100644 index 00000000..f5e9c96a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_halt.c @@ -0,0 +1,39 @@ + +/******************************************************************************* + * + * 2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * purpose_of_this_file_is_also_there_behind_the_big_header + * + */ + +#include "" /* include global header */ +int cinit_halt(int how) +{ + switch (how) { + case 'p': /* power off */ + break; + + default: + break; + } +} + +return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_prepare_comm.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_prepare_comm.c new file mode 100644 index 00000000..8badc744 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_prepare_comm.c @@ -0,0 +1,37 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Prepares the communication + */ + +#include /* str*, memset */ +#include /* uint32_t */ + +#include "cinit.h" /* header for clients */ + +void cinit_prepare_comm(struct cinit_question *qsn, struct cinit_answer *asr, + uint32_t cmd) +{ + memset(qsn, '\0', sizeof(struct cinit_question)); + memset(asr, '\0', sizeof(struct cinit_answer)); + + qsn->cmd = cmd; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_send_to.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_send_to.c new file mode 100644 index 00000000..cfd3a35c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_send_to.c @@ -0,0 +1,41 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * sends data from the client to cinit + * + */ + +#include "ipc.h" /* IPC */ +#include "cinit.h" /* struct cinit_message */ + +int cinit_send_to(struct cinit_question *data, struct cinit_answer *res) +{ + if(!cinit_ipc_logon()) + return 0; + if(!cinit_ipc_csend(data)) + return 0; + if(!cinit_ipc_cread(res)) + return 0; + if(!cinit_ipc_logoff()) + return 0; + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_disable.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_disable.c new file mode 100644 index 00000000..6c25c330 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_disable.c @@ -0,0 +1,68 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Disables a service + * + */ + +#include /* integers */ + +#include "cinit.h" /* header for clients */ + +/* + * to cinit: + * disable + flags + * from cinit: + * status + * unknown service + * disabled the service + * + * disabled the service and needs + * disabled the service and wants + * disabled the service and needs and wants + * + * if it is one of the last three it follows + * uint32_t num: how many services stopped + * num times + * + * uint32_t len (excluding \0) + * char name[] + */ + +uint32_t cinit_svc_disable(char *svc, uint32_t flag) +{ + struct cinit_question qsn; + struct cinit_answer asr; + + cinit_prepare_comm(&qsn, &asr, CINIT_QSN_SVC_DISABLE); + cinit_cp_data((qsn.data), svc); + + qsn.opt = flag; + + if(!cinit_send_to(&qsn, &asr)) + return CINIT_ASW_IPC_ERROR; + + /* + * FIXME: 0.3pre15: add retrieval of services + */ + + return asr.ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_enable.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_enable.c new file mode 100644 index 00000000..701a2b89 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_enable.c @@ -0,0 +1,48 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Retrieves pid of a service + * + */ + +#include /* integers */ +#include "cinit.h" /* header for clients */ + +uint32_t cinit_svc_enable(char *svc, uint32_t flag) +{ + struct cinit_question qsn; + struct cinit_answer asr; + + cinit_prepare_comm(&qsn, &asr, CINIT_QSN_SVC_ENABLE); + cinit_cp_data((qsn.data), svc); + + qsn.opt = flag; + + if(!cinit_send_to(&qsn, &asr)) + return CINIT_ASW_IPC_ERROR; + + /* + * add logic to display started services here or: add logic to start + * dependend services in here: want to start a -> cinit returns needs b + */ + + return CINIT_ASW_IPC_ERROR; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_get_pid.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_get_pid.c new file mode 100644 index 00000000..715fe953 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_get_pid.c @@ -0,0 +1,44 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Retrieves pid of a service + * + */ + +#include /* pid_t */ +#include /* integers */ +#include "cinit.h" /* header for clients */ + +uint32_t cinit_svc_get_pid(char *name, pid_t * status) +{ + struct cinit_question qsn; + struct cinit_answer asr; + + cinit_prepare_comm(&qsn, &asr, CINIT_QSN_GET_PID); + cinit_cp_data((qsn.data), name); + + if(!cinit_send_to(&qsn, &asr)) + return CINIT_ASW_IPC_ERROR; + + *status = asr.opt; + + return asr.ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_get_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_get_status.c new file mode 100644 index 00000000..be8a1a4e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/libcinit/cinit_svc_get_status.c @@ -0,0 +1,43 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Retrieves status of a service + * + */ + +#include /* integers */ +#include "cinit.h" /* header for clients */ + +uint32_t cinit_svc_get_status(char *name, uint32_t * status) +{ + struct cinit_question qsn; + struct cinit_answer asr; + + cinit_prepare_comm(&qsn, &asr, CINIT_QSN_GET_STATUS); + cinit_cp_data((qsn.data), name); + + if(!cinit_send_to(&qsn, &asr)) + return CINIT_ASW_IPC_ERROR; + + *status = asr.opt; + + return asr.ret; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/cinit b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/cinit new file mode 100644 index 00000000..5b48910b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/cinit @@ -0,0 +1,62 @@ +core/build_argv.o +core/cinit.o +core/panic.o +core/set_signals.o +core/signal_init_map.o +core/do_reboot.o +core/sig_child.o +generic/execute_sth.o +generic/file_exists.o +generic/mini_printf.o +generic/path_absolute.o +generic/path_append.o +generic/print_errno.o +generic/openreadclose.o +generic/strip_final_newline.o +generic/sleep_before_kill.o +generic/execute_and_wait.o +ipc/current/cinit_ipc_init.o +ipc/current/cinit_ipc_listen.o +ipc/current/cinit_ipc_destroy.o +ipc/current/cinit_ipc_logon.o +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o +svc/gen_svc_tree.o +svc/gen_halt_tree.o +svc/list_delete_byname.o +svc/list_delete_bypointer.o +svc/list_insert.o +svc/list_search.o +svc/list_search_pid.o +svc/svc_create.o +svc/svc_handle_pending.o +svc/svc_status_changed.o +svc/svc_disable.o +svc/check_add_deps.o +svc/dep_entry_add.o +svc/dep_entry_del.o +svc/shutdown_services.o +svc/svc_tree_exec.o +svc/svc_set_status.o +svc/svc_should_respawn.o +svc/svc_needs_status.o +svc/dep_needs_wants_add.o +svc/dep_create.o +svc/svc_success.o +svc/svc_report_status.o +svc/svc_fail.o +svc/svc_start.o +svc/svc_stop_deps.o +comm/read_command.o +comm/answer_svc_status.o +comm/answer_svc_pid.o +comm/answer_version.o +comm/cinit_cp_data.o +comm/answer_svc_disable.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/cmd b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/cmd new file mode 100644 index 00000000..a32be1f4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/cmd @@ -0,0 +1,17 @@ +client/cmd.o +comm/cinit_cp_data.o +generic/print_errno.o +generic/path_absolute.o +generic/mini_printf.o +ipc/current/cinit_ipc_logon.o +ipc/current/cinit_ipc_csend.o +ipc/current/cinit_ipc_cread.o +ipc/current/cinit_ipc_logoff.o +libcinit/cinit_get_version.o +libcinit/cinit_send_to.o +libcinit/cinit_svc_get_pid.o +libcinit/cinit_svc_get_status.o +libcinit/cinit_prepare_comm.o +libcinit/cinit_svc_enable.o +libcinit/cinit_svc_disable.o +libcinit/cinit_flag_to_uint32_t.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/halt.kill b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/halt.kill new file mode 100644 index 00000000..e5b12a36 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/halt.kill @@ -0,0 +1,3 @@ +client/halt.kill.o +generic/print_errno.o +generic/mini_printf.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/poweroff.kill b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/poweroff.kill new file mode 100644 index 00000000..306fc0bf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/poweroff.kill @@ -0,0 +1,3 @@ +client/poweroff.kill.o +generic/print_errno.o +generic/mini_printf.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/reboot.kill b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/reboot.kill new file mode 100644 index 00000000..f851badf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/object_lists/reboot.kill @@ -0,0 +1,3 @@ +client/reboot.kill.o +generic/print_errno.o +generic/mini_printf.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/halt.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/halt.c new file mode 100644 index 00000000..37064cc2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/halt.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * halt the system + * + */ + +#include +#include + +void cinit_halt(void) +{ + reboot(RB_HALT); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/objects b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/objects new file mode 100644 index 00000000..020f1efb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/objects @@ -0,0 +1,3 @@ +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/poweroff.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/poweroff.c new file mode 100644 index 00000000..c73dd079 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/poweroff.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * poweroff + * + */ + +#include +#include + +void cinit_poweroff(void) +{ + reboot(RB_POWEROFF); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/reboot.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/reboot.c new file mode 100644 index 00000000..03dc660a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/freebsd/reboot.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * reboot the system + * + */ + +#include +#include + +void cinit_reboot(void) +{ + reboot(RB_AUTOBOOT); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/halt.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/halt.c new file mode 100644 index 00000000..5ee3eb53 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/halt.c @@ -0,0 +1,16 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * How to halt the system + */ + +#include +#include + +void cinit_halt(void) +{ + reboot(RB_HALT_SYSTEM); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/objects b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/objects new file mode 100644 index 00000000..020f1efb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/objects @@ -0,0 +1,3 @@ +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/poweroff.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/poweroff.c new file mode 100644 index 00000000..c7d2b1c1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/poweroff.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * poweroff the system + * + */ + +#include +#include + +void cinit_poweroff(void) +{ + reboot(RB_POWER_OFF); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/reboot.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/reboot.c new file mode 100644 index 00000000..03dc660a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/linux/reboot.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * reboot the system + * + */ + +#include +#include + +void cinit_reboot(void) +{ + reboot(RB_AUTOBOOT); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/halt.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/halt.c new file mode 100644 index 00000000..972aecf9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/halt.c @@ -0,0 +1,19 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * poweroff + * + */ + +#define _NETBSD_SOURCE 1 +#include /* reboot */ +#include /* reboot */ +#include /* NULL */ + +void cinit_halt(void) +{ + reboot(RB_HALT,NULL); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/objects b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/objects new file mode 100644 index 00000000..020f1efb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/objects @@ -0,0 +1,3 @@ +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/poweroff.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/poweroff.c new file mode 100644 index 00000000..17d7b259 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/poweroff.c @@ -0,0 +1,19 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * poweroff + * + */ + +#define _NETBSD_SOURCE 1 +#include /* reboot */ +#include /* reboot */ +#include /* NULL */ + +void cinit_poweroff(void) +{ + reboot(RB_HALT|RB_POWERDOWN,NULL); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/reboot.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/reboot.c new file mode 100644 index 00000000..14313e17 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/netbsd/reboot.c @@ -0,0 +1,19 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * poweroff + * + */ + +#define _NETBSD_SOURCE 1 +#include /* reboot */ +#include /* reboot */ +#include /* NULL */ + +void cinit_reboot(void) +{ + reboot(RB_AUTOBOOT,NULL); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/halt.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/halt.c new file mode 100644 index 00000000..37064cc2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/halt.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * halt the system + * + */ + +#include +#include + +void cinit_halt(void) +{ + reboot(RB_HALT); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/objects b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/objects new file mode 100644 index 00000000..020f1efb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/objects @@ -0,0 +1,3 @@ +os/current/halt.o +os/current/poweroff.o +os/current/reboot.o diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/poweroff.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/poweroff.c new file mode 100644 index 00000000..bf4120e1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/poweroff.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * poweroff + * + */ + +#include +#include + +void cinit_poweroff(void) +{ + reboot(RB_HALT | RB_POWERDOWN); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/reboot.c b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/reboot.c new file mode 100644 index 00000000..03dc660a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/os/openbsd/reboot.c @@ -0,0 +1,17 @@ +/*********************************************************************** + * + * 2005-2007 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * reboot the system + * + */ + +#include +#include + +void cinit_reboot(void) +{ + reboot(RB_AUTOBOOT); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-14:54:44 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-14:54:44 new file mode 100644 index 00000000..cb646bb8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-14:54:44 @@ -0,0 +1 @@ +-rwx------ 1 nico users 74380 Apr 26 14:54 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:47:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:47:50 new file mode 100644 index 00000000..204585a1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:47:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 581695 Apr 26 16:46 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:48:48 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:48:48 new file mode 100644 index 00000000..204585a1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:48:48 @@ -0,0 +1 @@ +-rwx------ 1 nico users 581695 Apr 26 16:46 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:50:45 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:50:45 new file mode 100644 index 00000000..7a0db7d2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-16:50:45 @@ -0,0 +1 @@ +-rwx------ 1 nico users 581179 Apr 26 16:50 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-17:12:48 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-17:12:48 new file mode 100644 index 00000000..d239e089 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-17:12:48 @@ -0,0 +1 @@ +-rwx------ 1 nico users 582701 Apr 26 17:12 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-17:13:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-17:13:43 new file mode 100644 index 00000000..aad49034 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-17:13:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 582297 Apr 26 17:13 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-23:05:33 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-23:05:33 new file mode 100644 index 00000000..4a636b8c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-26-23:05:33 @@ -0,0 +1 @@ +-rwx------ 1 nico users 36307 Apr 26 22:39 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-27-00:39:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-27-00:39:24 new file mode 100644 index 00000000..e93028d8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-27-00:39:24 @@ -0,0 +1 @@ +-rwx------ 1 nico users 36307 Apr 27 00:39 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:18:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:18:22 new file mode 100644 index 00000000..f0d2e75f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:18:22 @@ -0,0 +1 @@ +-rwx------ 1 nico users 585344 Apr 30 15:18 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:20:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:20:40 new file mode 100644 index 00000000..3b01bfe1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:20:40 @@ -0,0 +1 @@ +-rwx------ 1 nico users 585344 Apr 30 15:20 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:23:25 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:23:25 new file mode 100644 index 00000000..750e3303 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:23:25 @@ -0,0 +1 @@ +-rwx------ 1 nico users 585344 Apr 30 15:23 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:25:44 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:25:44 new file mode 100644 index 00000000..5ed85ca3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:25:44 @@ -0,0 +1 @@ +-rwx------ 1 nico users 585364 Apr 30 15:25 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:32:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:32:43 new file mode 100644 index 00000000..3c54e71a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:32:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 585364 Apr 30 15:32 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:33:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:33:37 new file mode 100644 index 00000000..c24acefd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:33:37 @@ -0,0 +1 @@ +-rwx------ 1 nico users 585364 Apr 30 15:33 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:41:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:41:08 new file mode 100644 index 00000000..d29de765 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:41:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586640 Apr 30 15:41 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:41:18 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:41:18 new file mode 100644 index 00000000..b29d001c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:41:18 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586400 Apr 30 15:41 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:46:09 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:46:09 new file mode 100644 index 00000000..7ecb58be --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-15:46:09 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586368 Apr 30 15:46 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-16:48:16 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-16:48:16 new file mode 100644 index 00000000..413bd06c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-16:48:16 @@ -0,0 +1 @@ +-rwx------ 1 nico users 587874 Apr 30 16:48 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-16:50:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-16:50:05 new file mode 100644 index 00000000..d87323e5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-16:50:05 @@ -0,0 +1 @@ +-rwx------ 1 nico users 587818 Apr 30 16:50 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:02:27 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:02:27 new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:03:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:03:00 new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:05:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:05:11 new file mode 100644 index 00000000..c2e30760 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:05:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 583878 Apr 30 17:05 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:06:15 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:06:15 new file mode 100644 index 00000000..d11fe194 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:06:15 @@ -0,0 +1 @@ +-rwx------ 1 nico users 583958 Apr 30 17:06 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:11:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:11:59 new file mode 100644 index 00000000..513f7663 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:11:59 @@ -0,0 +1 @@ +-rwx------ 1 nico users 583974 Apr 30 17:11 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:13:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:13:43 new file mode 100644 index 00000000..76110937 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-17:13:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584050 Apr 30 17:13 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-22:28:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-22:28:13 new file mode 100644 index 00000000..1370e416 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-22:28:13 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584050 Apr 30 22:28 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-22:34:23 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-22:34:23 new file mode 100644 index 00000000..ceba126c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-04-30-22:34:23 @@ -0,0 +1 @@ +-rwx------ 1 nico users 583838 Apr 30 22:34 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:27:51 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:27:51 new file mode 100644 index 00000000..b21e993d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:27:51 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584543 May 2 13:27 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:46:31 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:46:31 new file mode 100644 index 00000000..95c008db --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:46:31 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584719 May 2 13:46 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:49:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:49:29 new file mode 100644 index 00000000..284469ac --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:49:29 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584775 May 2 13:49 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:49:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:49:58 new file mode 100644 index 00000000..9b87df79 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:49:58 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584843 May 2 13:49 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:52:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:52:20 new file mode 100644 index 00000000..a4705b4e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:52:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584711 May 2 13:52 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:55:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:55:50 new file mode 100644 index 00000000..847e1f56 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:55:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584759 May 2 13:55 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:58:14 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:58:14 new file mode 100644 index 00000000..a9094c6f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:58:14 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584759 May 2 13:58 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:59:53 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:59:53 new file mode 100644 index 00000000..921e7860 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-13:59:53 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584915 May 2 13:59 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-14:00:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-14:00:26 new file mode 100644 index 00000000..aeb6907a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-14:00:26 @@ -0,0 +1 @@ +-rwx------ 1 nico users 584915 May 2 14:00 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-14:04:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-14:04:19 new file mode 100644 index 00000000..138af335 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-02-14:04:19 @@ -0,0 +1 @@ +-rwx------ 1 nico users 583802 May 2 14:04 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-15:47:56 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-15:47:56 new file mode 100644 index 00000000..87f3513e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-15:47:56 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586826 May 6 15:47 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:02:41 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:02:41 new file mode 100644 index 00000000..85073f60 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:02:41 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586774 May 6 20:02 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:39:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:39:08 new file mode 100644 index 00000000..0c2bb0af --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:39:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586194 May 6 20:39 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:40:55 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:40:55 new file mode 100644 index 00000000..34e3fd85 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:40:55 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586578 May 6 20:40 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:44:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:44:39 new file mode 100644 index 00000000..2b6d7b2a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:44:39 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586594 May 6 20:44 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:48:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:48:57 new file mode 100644 index 00000000..55fa5821 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:48:57 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586646 May 6 20:48 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:49:46 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:49:46 new file mode 100644 index 00000000..533c3fd6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:49:46 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586546 May 6 20:49 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:54:45 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:54:45 new file mode 100644 index 00000000..bffbdd24 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:54:45 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586354 May 6 20:54 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:57:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:57:17 new file mode 100644 index 00000000..071f56c6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-20:57:17 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586354 May 6 20:57 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-21:07:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-21:07:11 new file mode 100644 index 00000000..2c71d62b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-21:07:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 586414 May 6 21:07 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:22:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:22:43 new file mode 100644 index 00000000..6963a07e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:22:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590128 May 6 22:22 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:39:12 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:39:12 new file mode 100644 index 00000000..90e36387 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:39:12 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590128 May 6 22:39 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:43:21 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:43:21 new file mode 100644 index 00000000..9f5f1b76 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:43:21 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590180 May 6 22:43 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:54:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:54:00 new file mode 100644 index 00000000..fe51f37f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:54:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590108 May 6 22:54 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:55:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:55:07 new file mode 100644 index 00000000..4d2854b5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:55:07 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590108 May 6 22:55 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:56:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:56:58 new file mode 100644 index 00000000..5c7685ba --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:56:58 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590148 May 6 22:56 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:58:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:58:39 new file mode 100644 index 00000000..4720079f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:58:39 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590180 May 6 22:58 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:59:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:59:17 new file mode 100644 index 00000000..d7c4fd66 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-22:59:17 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590232 May 6 22:59 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:00:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:00:07 new file mode 100644 index 00000000..c0db4814 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:00:07 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590232 May 6 23:00 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:19:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:19:24 new file mode 100644 index 00000000..cd0fb013 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:19:24 @@ -0,0 +1 @@ +-rwx------ 1 nico users 590364 May 6 23:19 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:53:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:53:59 new file mode 100644 index 00000000..873c4553 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-06-23:53:59 @@ -0,0 +1 @@ +-rwx------ 1 nico users 83116 May 6 23:53 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:18:32 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:18:32 new file mode 100644 index 00000000..00b835d4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:18:32 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591984 May 7 00:18 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:20:46 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:20:46 new file mode 100644 index 00000000..3b1a8332 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:20:46 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591988 May 7 00:20 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:24:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:24:11 new file mode 100644 index 00000000..cb129627 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:24:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591988 May 7 00:24 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:26:55 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:26:55 new file mode 100644 index 00000000..d681556a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:26:55 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591988 May 7 00:26 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:27:53 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:27:53 new file mode 100644 index 00000000..b1ac1360 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:27:53 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591988 May 7 00:27 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:28:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:28:24 new file mode 100644 index 00000000..df645c5f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:28:24 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591992 May 7 00:28 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:31:01 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:31:01 new file mode 100644 index 00000000..4ad1fccf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:31:01 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591992 May 7 00:31 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:37:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:37:58 new file mode 100644 index 00000000..a5eaa893 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:37:58 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591992 May 7 00:37 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:39:02 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:39:02 new file mode 100644 index 00000000..16613354 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:39:02 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591992 May 7 00:39 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:41:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:41:50 new file mode 100644 index 00000000..634db82e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:41:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591988 May 7 00:41 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:43:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:43:08 new file mode 100644 index 00000000..29e5ab44 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:43:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591988 May 7 00:43 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:55:51 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:55:51 new file mode 100644 index 00000000..2066a3b4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:55:51 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592323 May 7 00:55 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:59:30 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:59:30 new file mode 100644 index 00000000..03900b64 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-00:59:30 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592323 May 7 00:59 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:07:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:07:13 new file mode 100644 index 00000000..f2b3d846 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:07:13 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592323 May 7 01:07 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:08:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:08:19 new file mode 100644 index 00000000..17cb5c2b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:08:19 @@ -0,0 +1 @@ +-rwx------ 1 nico users 574191 May 7 01:08 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:16:38 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:16:38 new file mode 100644 index 00000000..9433ec26 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:16:38 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592323 May 7 01:16 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:19:48 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:19:48 new file mode 100644 index 00000000..0c40f566 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:19:48 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592323 May 7 01:19 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:52:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:52:58 new file mode 100644 index 00000000..1aaadbc1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-01:52:58 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592343 May 7 01:52 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:41:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:41:29 new file mode 100644 index 00000000..2be2f9a2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:41:29 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591445 May 7 12:41 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:43:55 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:43:55 new file mode 100644 index 00000000..30ec92e0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:43:55 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591525 May 7 12:43 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:45:38 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:45:38 new file mode 100644 index 00000000..c5d8b280 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:45:38 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591525 May 7 12:45 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:48:21 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:48:21 new file mode 100644 index 00000000..2525b992 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:48:21 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591525 May 7 12:48 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:49:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:49:22 new file mode 100644 index 00000000..aafaa448 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:49:22 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591525 May 7 12:49 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:50:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:50:57 new file mode 100644 index 00000000..689e0fd2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:50:57 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591589 May 7 12:50 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:52:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:52:26 new file mode 100644 index 00000000..b7771920 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:52:26 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591729 May 7 12:52 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:54:04 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:54:04 new file mode 100644 index 00000000..474189e8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:54:04 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591729 May 7 12:54 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:57:56 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:57:56 new file mode 100644 index 00000000..271bb163 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-12:57:56 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591933 May 7 12:57 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:06:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:06:20 new file mode 100644 index 00000000..d2c651e8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:06:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591981 May 7 13:06 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:18:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:18:00 new file mode 100644 index 00000000..960ca358 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:18:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 591981 May 7 13:18 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:21:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:21:37 new file mode 100644 index 00000000..8d92e4f3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:21:37 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592137 May 7 13:21 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:24:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:24:40 new file mode 100644 index 00000000..a025210f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:24:40 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592137 May 7 13:24 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:25:56 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:25:56 new file mode 100644 index 00000000..15de8275 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:25:56 @@ -0,0 +1 @@ +-rwx------ 1 nico users 592137 May 7 13:25 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:26:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:26:49 new file mode 100644 index 00000000..fa232442 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:26:49 @@ -0,0 +1 @@ +-rwx------ 1 nico users 593597 May 7 13:26 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:30:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:30:20 new file mode 100644 index 00000000..37d26b60 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:30:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 593613 May 7 13:30 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:33:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:33:50 new file mode 100644 index 00000000..3a8a3343 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:33:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 593613 May 7 13:33 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:51:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:51:24 new file mode 100644 index 00000000..139a41ae --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:51:24 @@ -0,0 +1 @@ +-rwx------ 1 nico users 595209 May 7 13:51 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:53:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:53:11 new file mode 100644 index 00000000..a4a9383c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:53:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594213 May 7 13:53 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:53:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:53:22 new file mode 100644 index 00000000..a4a9383c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:53:22 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594213 May 7 13:53 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:57:27 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:57:27 new file mode 100644 index 00000000..4d0c5820 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:57:27 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594245 May 7 13:57 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:58:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:58:26 new file mode 100644 index 00000000..f62f9890 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-13:58:26 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594201 May 7 13:58 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:00:47 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:00:47 new file mode 100644 index 00000000..1b1c2687 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:00:47 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594209 May 7 14:00 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:12:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:12:17 new file mode 100644 index 00000000..eb6c69a8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:12:17 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594209 May 7 14:12 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:14:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:14:00 new file mode 100644 index 00000000..7de2bc3e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:14:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 594209 May 7 14:14 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:40:38 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:40:38 new file mode 100644 index 00000000..5cce7d61 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:40:38 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597457 May 7 14:40 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:43:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:43:08 new file mode 100644 index 00000000..11a18f12 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:43:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597245 May 7 14:43 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:46:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:46:22 new file mode 100644 index 00000000..17920fb6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:46:22 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597349 May 7 14:46 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:48:01 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:48:01 new file mode 100644 index 00000000..28b127b9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:48:01 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597405 May 7 14:48 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:49:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:49:20 new file mode 100644 index 00000000..be0db14c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:49:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597465 May 7 14:49 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:54:30 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:54:30 new file mode 100644 index 00000000..a7bb306d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:54:30 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597521 May 7 14:54 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:55:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:55:05 new file mode 100644 index 00000000..5d0fa0e1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:55:05 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597521 May 7 14:55 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:56:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:56:35 new file mode 100644 index 00000000..2a3d7b76 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-14:56:35 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597521 May 7 14:56 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:01:01 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:01:01 new file mode 100644 index 00000000..7c8b202b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:01:01 @@ -0,0 +1 @@ +-rwx------ 1 nico users 597521 May 7 15:01 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:11:31 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:11:31 new file mode 100644 index 00000000..6d39491b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:11:31 @@ -0,0 +1 @@ +-rwx------ 1 nico users 65883 May 7 15:11 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:19:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:19:50 new file mode 100644 index 00000000..f6cbfa60 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:19:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600423 May 7 15:19 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:20:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:20:58 new file mode 100644 index 00000000..44f8ed6e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:20:58 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600423 May 7 15:20 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:24:21 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:24:21 new file mode 100644 index 00000000..ac80b6cc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:24:21 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600487 May 7 15:24 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:27:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:27:00 new file mode 100644 index 00000000..a2d19633 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:27:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600487 May 7 15:27 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:28:54 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:28:54 new file mode 100644 index 00000000..c010ebe3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:28:54 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600483 May 7 15:28 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:40:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:40:58 new file mode 100644 index 00000000..97b6ef8b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-15:40:58 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600479 May 7 15:40 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:11:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:11:52 new file mode 100644 index 00000000..f4b32610 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:11:52 @@ -0,0 +1 @@ +-rwx------ 1 nico users 601444 May 7 16:11 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:20:02 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:20:02 new file mode 100644 index 00000000..23608225 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:20:02 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602184 May 7 16:20 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:26:18 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:26:18 new file mode 100644 index 00000000..a52756b8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:26:18 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602192 May 7 16:26 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:31:09 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:31:09 new file mode 100644 index 00000000..40f890cf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:31:09 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602192 May 7 16:31 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:35:42 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:35:42 new file mode 100644 index 00000000..601a1bfe --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:35:42 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602192 May 7 16:35 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:50:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:50:11 new file mode 100644 index 00000000..4c5693a0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:50:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602260 May 7 16:50 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:50:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:50:40 new file mode 100644 index 00000000..1a1cd156 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-16:50:40 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602248 May 7 16:50 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:03:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:03:50 new file mode 100644 index 00000000..8b6f5a43 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:03:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602248 May 7 17:03 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:07:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:07:50 new file mode 100644 index 00000000..d19fc7ae --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:07:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 596181 May 7 17:07 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:08:09 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:08:09 new file mode 100644 index 00000000..22b48319 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:08:09 @@ -0,0 +1 @@ +-rwx------ 1 nico users 596181 May 7 17:08 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:08:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:08:26 new file mode 100644 index 00000000..de1d5756 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:08:26 @@ -0,0 +1 @@ +-rwx------ 1 nico users 575617 May 7 17:08 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:10:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:10:57 new file mode 100644 index 00000000..ccf3d46e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-17:10:57 @@ -0,0 +1 @@ +-rwx------ 1 nico users 575513 May 7 17:10 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:24:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:24:22 new file mode 100644 index 00000000..9b515805 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:24:22 @@ -0,0 +1 @@ +-rwx------ 1 nico users 575513 May 7 18:24 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:24:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:24:59 new file mode 100644 index 00000000..9b515805 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:24:59 @@ -0,0 +1 @@ +-rwx------ 1 nico users 575513 May 7 18:24 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:37:23 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:37:23 new file mode 100644 index 00000000..4c797f80 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:37:23 @@ -0,0 +1 @@ +-rwx------ 1 nico users 575521 May 7 18:37 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:49:16 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:49:16 new file mode 100644 index 00000000..f6a6637e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-07-18:49:16 @@ -0,0 +1 @@ +-rwx------ 1 nico users 26118 May 7 18:49 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-10:44:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-10:44:00 new file mode 100644 index 00000000..4dad0f2e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-10:44:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 64935 May 8 10:44 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:41:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:41:22 new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:42:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:42:08 new file mode 100644 index 00000000..a356e57e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:42:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 23195 May 8 12:42 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:42:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:42:57 new file mode 100644 index 00000000..60f39860 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-12:42:57 @@ -0,0 +1 @@ +-rwx------ 1 nico users 574244 May 8 12:42 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-22:41:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-22:41:37 new file mode 100644 index 00000000..eeb969f5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-22:41:37 @@ -0,0 +1 @@ +-rwx------ 1 nico users 574244 May 8 22:41 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:03:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:03:37 new file mode 100644 index 00000000..7b69f761 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:03:37 @@ -0,0 +1 @@ +-rwx------ 1 nico users 595364 May 8 23:03 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:11:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:11:20 new file mode 100644 index 00000000..b79e90ca --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:11:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600779 May 8 23:11 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:40:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:40:29 new file mode 100644 index 00000000..6cf221bc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-08-23:40:29 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600887 May 8 23:40 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-09-12:03:27 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-09-12:03:27 new file mode 100644 index 00000000..78304c2a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-09-12:03:27 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600967 May 9 12:03 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-09-12:05:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-09-12:05:57 new file mode 100644 index 00000000..a810ae44 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-09-12:05:57 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600971 May 9 12:05 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:10:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:10:50 new file mode 100644 index 00000000..e8e895de --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:10:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 600979 May 10 19:10 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:16:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:16:39 new file mode 100644 index 00000000..14426e45 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:16:39 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602483 May 10 19:16 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:25:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:25:05 new file mode 100644 index 00000000..0b5026c7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:25:05 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602483 May 10 19:25 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:26:14 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:26:14 new file mode 100644 index 00000000..c1ba5203 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:26:14 @@ -0,0 +1 @@ +-rwx------ 1 nico users 602483 May 10 19:26 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:39:23 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:39:23 new file mode 100644 index 00000000..9b30a737 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-19:39:23 @@ -0,0 +1 @@ +-rwx------ 1 nico users 603383 May 10 19:39 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:13:51 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:13:51 new file mode 100644 index 00000000..81fab8bc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:13:51 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605373 May 10 20:13 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:14:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:14:40 new file mode 100644 index 00000000..f73e7147 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:14:40 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604245 May 10 20:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:27:10 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:27:10 new file mode 100644 index 00000000..a7fa3a2e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:27:10 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604511 May 10 20:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:28:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:28:11 new file mode 100644 index 00000000..e3597646 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:28:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604507 May 10 20:28 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:28:31 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:28:31 new file mode 100644 index 00000000..f5b63078 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:28:31 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604471 May 10 20:28 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:30:03 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:30:03 new file mode 100644 index 00000000..7377ee59 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:30:03 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604471 May 10 20:30 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:32:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:32:29 new file mode 100644 index 00000000..b46425f9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:32:29 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604471 May 10 20:32 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:33:30 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:33:30 new file mode 100644 index 00000000..ad3cb32e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:33:30 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604471 May 10 20:33 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:38:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:38:26 new file mode 100644 index 00000000..b78fde41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-20:38:26 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604245 May 10 20:38 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-21:52:18 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-21:52:18 new file mode 100644 index 00000000..5319df7a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-21:52:18 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604533 May 10 21:52 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-21:54:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-21:54:00 new file mode 100644 index 00000000..41ed8e4c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-21:54:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604637 May 10 21:54 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:06:53 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:06:53 new file mode 100644 index 00000000..34791fa3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:06:53 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604641 May 10 22:06 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:07:06 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:07:06 new file mode 100644 index 00000000..9579bf3d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:07:06 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95212 May 10 22:07 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:24:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:24:49 new file mode 100644 index 00000000..0d88b035 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:24:49 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95668 May 10 22:24 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:27:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:27:59 new file mode 100644 index 00000000..a2b8778b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:27:59 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95400 May 10 22:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:30:25 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:30:25 new file mode 100644 index 00000000..ae278de2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-22:30:25 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95456 May 10 22:30 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:42:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:42:29 new file mode 100644 index 00000000..11bcf1e3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:42:29 @@ -0,0 +1 @@ +-rwx------ 1 nico users 606417 May 10 23:42 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:44:10 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:44:10 new file mode 100644 index 00000000..6ffc3a31 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:44:10 @@ -0,0 +1 @@ +-rwx------ 1 nico users 606369 May 10 23:44 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:46:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:46:40 new file mode 100644 index 00000000..e3aa20c0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-10-23:46:40 @@ -0,0 +1 @@ +-rwx------ 1 nico users 606373 May 10 23:46 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:14:02 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:14:02 new file mode 100644 index 00000000..86483ada --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:14:02 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604923 May 11 00:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:17:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:17:19 new file mode 100644 index 00000000..fdaa4339 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:17:19 @@ -0,0 +1 @@ +-rwx------ 1 nico users 604923 May 11 00:17 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:23:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:23:52 new file mode 100644 index 00000000..7e94e61a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-00:23:52 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605007 May 11 00:23 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:04:16 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:04:16 new file mode 100644 index 00000000..33d8fd01 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:04:16 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95830 May 11 08:04 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:06:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:06:26 new file mode 100644 index 00000000..c96a3211 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:06:26 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95830 May 11 08:06 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:09:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:09:49 new file mode 100644 index 00000000..0e444a28 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:09:49 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95854 May 11 08:09 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:11:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:11:49 new file mode 100644 index 00000000..856ac480 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-11-08:11:49 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95862 May 11 08:11 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-13-20:34:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-13-20:34:19 new file mode 100644 index 00000000..86818bfe --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-13-20:34:19 @@ -0,0 +1 @@ +-rwx------ 1 nico users 69502 May 13 20:34 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-13-22:33:53 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-13-22:33:53 new file mode 100644 index 00000000..77c8fb8c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-13-22:33:53 @@ -0,0 +1 @@ +-rwx------ 1 nico users 579289 May 13 22:33 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-22:32:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-22:32:07 new file mode 100644 index 00000000..59557c4b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-22:32:07 @@ -0,0 +1 @@ +-rwx------ 1 nico users 579289 May 15 22:32 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-23:52:06 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-23:52:06 new file mode 100644 index 00000000..757e6dc6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-23:52:06 @@ -0,0 +1 @@ +-rwx------ 1 nico users 579305 May 15 23:52 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-23:56:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-23:56:00 new file mode 100644 index 00000000..24c85104 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-15-23:56:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605145 May 15 23:56 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:16:09 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:16:09 new file mode 100644 index 00000000..27254aa3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:16:09 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605205 May 16 00:16 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:20:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:20:52 new file mode 100644 index 00000000..a053d473 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:20:52 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605317 May 16 00:20 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:23:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:23:43 new file mode 100644 index 00000000..d43f64a7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:23:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605373 May 16 00:23 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:27:36 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:27:36 new file mode 100644 index 00000000..ca2ccc40 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:27:36 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605569 May 16 00:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:37:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:37:24 new file mode 100644 index 00000000..ea664c90 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:37:24 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605561 May 16 00:37 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:39:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:39:43 new file mode 100644 index 00000000..3eb8d279 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-00:39:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605267 May 16 00:39 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-09:58:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-09:58:08 new file mode 100644 index 00000000..90a5b698 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-09:58:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605567 May 16 09:58 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:09:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:09:00 new file mode 100644 index 00000000..4c34f810 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:09:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605583 May 16 10:09 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:13:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:13:07 new file mode 100644 index 00000000..b6a851e6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:13:07 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605619 May 16 10:13 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:14:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:14:43 new file mode 100644 index 00000000..d7555f0d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:14:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605461 May 16 10:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:23:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:23:05 new file mode 100644 index 00000000..2c4fc649 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:23:05 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605493 May 16 10:23 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:27:48 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:27:48 new file mode 100644 index 00000000..b8f9fc63 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:27:48 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605493 May 16 10:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:44:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:44:17 new file mode 100644 index 00000000..a4b493e5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:44:17 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605561 May 16 10:44 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:52:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:52:29 new file mode 100644 index 00000000..20f10201 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-16-10:52:29 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605561 May 16 10:52 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-17-00:19:15 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-17-00:19:15 new file mode 100644 index 00000000..4f112228 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-17-00:19:15 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605405 May 17 00:19 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-17-16:02:33 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-17-16:02:33 new file mode 100644 index 00000000..e1b6b2d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-17-16:02:33 @@ -0,0 +1 @@ +-rwx------ 1 nico users 605405 May 17 16:02 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-14:56:01 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-14:56:01 new file mode 100644 index 00000000..c5e08e25 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-14:56:01 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95794 May 21 14:56 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:01:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:01:28 new file mode 100644 index 00000000..f084d66c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:01:28 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97550 May 21 15:01 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:03:46 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:03:46 new file mode 100644 index 00000000..3300d96b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:03:46 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97546 May 21 15:03 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:06:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:06:24 new file mode 100644 index 00000000..c07965d9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:06:24 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95186 May 21 15:06 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:12:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:12:50 new file mode 100644 index 00000000..58d948d6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:12:50 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97562 May 21 15:12 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:14:38 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:14:38 new file mode 100644 index 00000000..a54dbd5f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:14:38 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97562 May 21 15:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:15:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:15:28 new file mode 100644 index 00000000..fb57cba5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:15:28 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97562 May 21 15:15 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:16:15 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:16:15 new file mode 100644 index 00000000..7411b66d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:16:15 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97562 May 21 15:16 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:26:25 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:26:25 new file mode 100644 index 00000000..48fc5eb9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:26:25 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97562 May 21 15:26 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:27:30 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:27:30 new file mode 100644 index 00000000..f9ceed5d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:27:30 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97562 May 21 15:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:32:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:32:52 new file mode 100644 index 00000000..9e7e39a9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:32:52 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97622 May 21 15:32 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:35:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:35:00 new file mode 100644 index 00000000..0f2d5463 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:35:00 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97638 May 21 15:35 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:36:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:36:19 new file mode 100644 index 00000000..8f465621 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-15:36:19 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97638 May 21 15:36 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:05:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:05:20 new file mode 100644 index 00000000..fdd3f0f3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:05:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95350 May 21 17:05 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:08:31 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:08:31 new file mode 100644 index 00000000..ee8a1e86 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:08:31 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95358 May 21 17:08 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:11:25 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:11:25 new file mode 100644 index 00000000..164d40ed --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:11:25 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95334 May 21 17:11 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:12:15 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:12:15 new file mode 100644 index 00000000..164d40ed --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:12:15 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95334 May 21 17:11 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:12:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:12:49 new file mode 100644 index 00000000..125b84d8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:12:49 @@ -0,0 +1 @@ +-rwx------ 1 nico users 95422 May 21 17:12 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:33:25 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:33:25 new file mode 100644 index 00000000..2c6102d8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:33:25 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97722 May 21 17:33 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:47:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:47:39 new file mode 100644 index 00000000..2c6102d8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:47:39 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97722 May 21 17:33 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:47:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:47:52 new file mode 100644 index 00000000..f86bd095 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-21-17:47:52 @@ -0,0 +1 @@ +-rwx------ 1 nico users 71102 May 21 17:47 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-23-21:04:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-23-21:04:37 new file mode 100644 index 00000000..e9159f80 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-23-21:04:37 @@ -0,0 +1 @@ +-rwx------ 1 nico users 71102 May 23 21:04 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-07:55:38 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-07:55:38 new file mode 100644 index 00000000..d814eb2d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-07:55:38 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97762 May 26 07:55 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-08:27:51 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-08:27:51 new file mode 100644 index 00000000..3d6940fd --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-08:27:51 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97923 May 26 08:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-08:32:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-08:32:19 new file mode 100644 index 00000000..1528030b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-26-08:32:19 @@ -0,0 +1 @@ +-rwx------ 1 nico users 97923 May 26 08:32 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-27-05:51:30 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-27-05:51:30 new file mode 100644 index 00000000..9f0f1c2a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-05-27-05:51:30 @@ -0,0 +1 @@ +-rwx------ 1 nico users 48484 May 27 05:51 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-00:23:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-00:23:43 new file mode 100644 index 00000000..0fbb4e6d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-00:23:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 48484 Jun 4 00:23 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-10:08:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-10:08:43 new file mode 100644 index 00000000..13fa7ebf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-10:08:43 @@ -0,0 +1 @@ +-rwx------ 1 nico users 53748 Jun 4 10:08 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-10:54:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-10:54:35 new file mode 100644 index 00000000..2af16040 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-04-10:54:35 @@ -0,0 +1 @@ +-rwx------ 1 nico users 53692 Jun 4 10:54 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-12:34:54 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-12:34:54 new file mode 100644 index 00000000..bde025a7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-12:34:54 @@ -0,0 +1 @@ +-rwx------ 1 nico users 48484 Jun 5 12:34 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-12:41:25 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-12:41:25 new file mode 100644 index 00000000..8069fae4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-12:41:25 @@ -0,0 +1 @@ +-rwx------ 1 nico users 48484 Jun 5 12:41 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-14:40:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-14:40:37 new file mode 100644 index 00000000..bba7655d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-05-14:40:37 @@ -0,0 +1 @@ +-rwx------ 1 nico users 14692 Jun 5 14:40 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-09:48:34 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-09:48:34 new file mode 100644 index 00000000..8f26ae30 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-09:48:34 @@ -0,0 +1 @@ +-rwx------ 1 nico users 48484 Jun 8 09:48 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-10:09:27 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-10:09:27 new file mode 100644 index 00000000..e1eeb6a9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-10:09:27 @@ -0,0 +1 @@ +-rwx------ 1 nico users 48480 Jun 8 10:09 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-10:23:04 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-10:23:04 new file mode 100644 index 00000000..0858c419 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-08-10:23:04 @@ -0,0 +1 @@ +-rwx------ 1 nico users 53724 Jun 8 10:23 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-08:44:09 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-08:44:09 new file mode 100644 index 00000000..b96788fa --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-08:44:09 @@ -0,0 +1 @@ +-rwx------ 1 nico users 53524 Jun 9 08:44 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-09:59:47 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-09:59:47 new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-10:00:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-10:00:08 new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-10:00:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-10:00:40 new file mode 100644 index 00000000..e69de29b diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:27:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:27:17 new file mode 100644 index 00000000..2b821ff2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:27:17 @@ -0,0 +1 @@ +-rwx------ 1 nico users 53652 Jun 9 11:27 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:28:30 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:28:30 new file mode 100644 index 00000000..66dcc65d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:28:30 @@ -0,0 +1 @@ +-rwx------ 1 nico users 53660 Jun 9 11:28 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:46:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:46:28 new file mode 100644 index 00000000..f106b674 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:46:28 @@ -0,0 +1 @@ +-rwx------ 1 nico users 52576 Jun 9 11:46 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:47:04 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:47:04 new file mode 100644 index 00000000..531df2bc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-09-11:47:04 @@ -0,0 +1 @@ +-rwx------ 1 nico users 52576 Jun 9 11:47 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-07:07:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-07:07:35 new file mode 100644 index 00000000..9c72c2f8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-07:07:35 @@ -0,0 +1 @@ +-rwx------ 1 nico users 52576 Jun 10 07:07 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:14:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:14:05 new file mode 100644 index 00000000..6b4262c7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:14:05 @@ -0,0 +1 @@ +-rwx------ 1 nico users 71206 Jun 10 18:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:14:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:14:28 new file mode 100644 index 00000000..6b4262c7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:14:28 @@ -0,0 +1 @@ +-rwx------ 1 nico users 71206 Jun 10 18:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:18:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:18:11 new file mode 100644 index 00000000..fb6745a5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-10-18:18:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50856 Jun 10 18:14 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-16:28:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-16:28:13 new file mode 100644 index 00000000..7fb4b100 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-16:28:13 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50856 Jun 11 16:28 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:13:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:13:20 new file mode 100644 index 00000000..cc6a8ef3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:13:20 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50856 Jun 11 19:13 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:22:16 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:22:16 new file mode 100644 index 00000000..cc6a8ef3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:22:16 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50856 Jun 11 19:13 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:25:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:25:11 new file mode 100644 index 00000000..68e12d0e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-11-19:25:11 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50856 Jun 11 19:25 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-12-18:09:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-12-18:09:08 new file mode 100644 index 00000000..82ce820c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-12-18:09:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50860 Jun 12 18:09 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-12-18:09:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-12-18:09:22 new file mode 100644 index 00000000..82ce820c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-12-18:09:22 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50860 Jun 12 18:09 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-08:13:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-08:13:08 new file mode 100644 index 00000000..eab7486c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-08:13:08 @@ -0,0 +1 @@ +-rwx------ 1 nico users 50860 Jun 13 08:13 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-13:28:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-13:28:35 new file mode 100644 index 00000000..b744b7e4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-13:28:35 @@ -0,0 +1 @@ +-rwx------ 1 nico users 46764 Jun 13 13:28 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:23:15 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:23:15 new file mode 100644 index 00000000..4bcdddba --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:23:15 @@ -0,0 +1 @@ +-rwx------ 1 nico users 46868 Jun 13 21:23 sbin/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:26:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:26:52 new file mode 100644 index 00000000..b88d9416 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:26:52 @@ -0,0 +1,3 @@ +total 88 +-rwx------ 1 nico users 46868 Jun 13 21:26 cinit +-rwx------ 1 nico users 38568 Jun 13 21:26 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:57:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:57:26 new file mode 100644 index 00000000..d8953654 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-13-21:57:26 @@ -0,0 +1,3 @@ +total 92 +-rwx------ 1 nico users 46868 Jun 13 21:57 cinit +-rwx------ 1 nico users 44148 Jun 13 21:57 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-06:35:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-06:35:49 new file mode 100644 index 00000000..91ebffd7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-06:35:49 @@ -0,0 +1,3 @@ +total 92 +-rwx------ 1 nico users 47044 Jun 14 06:35 cinit +-rwx------ 1 nico users 44148 Jun 13 21:57 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-09:51:51 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-09:51:51 new file mode 100644 index 00000000..11a36249 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-09:51:51 @@ -0,0 +1,3 @@ +total 100 +-rwx------ 1 nico users 52236 Jun 14 09:51 cinit +-rwx------ 1 nico users 47356 Jun 14 09:51 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-09:58:58 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-09:58:58 new file mode 100644 index 00000000..a6d36a9c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-09:58:58 @@ -0,0 +1,3 @@ +total 100 +-rwx------ 1 nico users 52324 Jun 14 09:58 cinit +-rwx------ 1 nico users 47356 Jun 14 09:58 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-10:01:02 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-10:01:02 new file mode 100644 index 00000000..cd4e9dad --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-10:01:02 @@ -0,0 +1,3 @@ +total 100 +-rwx------ 1 nico users 52380 Jun 14 10:01 cinit +-rwx------ 1 nico users 47356 Jun 14 10:01 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:16:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:16:40 new file mode 100644 index 00000000..a4445099 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:16:40 @@ -0,0 +1,3 @@ +total 100 +-rwx------ 1 nico users 52692 Jun 14 13:16 cinit +-rwx------ 1 nico users 47324 Jun 14 13:16 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:21:47 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:21:47 new file mode 100644 index 00000000..80015aa5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:21:47 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 14 13:21 cinit +-rwx------ 1 nico users 47324 Jun 14 13:21 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:26:18 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:26:18 new file mode 100644 index 00000000..74b71d92 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-14-13:26:18 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 14 13:26 cinit +-rwx------ 1 nico users 47324 Jun 14 13:26 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-06:38:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-06:38:49 new file mode 100644 index 00000000..7cb89e92 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-06:38:49 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 15 06:38 cinit +-rwx------ 1 nico users 47324 Jun 15 06:38 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-06:46:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-06:46:05 new file mode 100644 index 00000000..e0e1051d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-06:46:05 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 15 06:46 cinit +-rwx------ 1 nico users 47324 Jun 15 06:46 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-09:17:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-09:17:57 new file mode 100644 index 00000000..efff0d89 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-09:17:57 @@ -0,0 +1,2 @@ +total 48 +-rwx------ 1 nico users 47324 Jun 15 08:46 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:13:26 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:13:26 new file mode 100644 index 00000000..a6d7b57a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:13:26 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 15 11:13 cinit +-rwx------ 1 nico users 48196 Jun 15 11:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:16:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:16:39 new file mode 100644 index 00000000..6e551c3f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:16:39 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 15 11:16 cinit +-rwx------ 1 nico users 48196 Jun 15 11:16 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:30:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:30:39 new file mode 100644 index 00000000..c6962be4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:30:39 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 15 11:30 cinit +-rwx------ 1 nico users 48180 Jun 15 11:30 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:31:16 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:31:16 new file mode 100644 index 00000000..54d722c8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-11:31:16 @@ -0,0 +1,3 @@ +total 104 +-rwx------ 1 nico users 54956 Jun 15 11:31 cinit +-rwx------ 1 nico users 48180 Jun 15 11:31 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-14:08:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-14:08:57 new file mode 100644 index 00000000..b4a1905c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-14:08:57 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 15 14:08 cinit +-rwx------ 1 nico users 50860 Jun 15 14:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-14:19:46 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-14:19:46 new file mode 100644 index 00000000..4b9133d4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-14:19:46 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 15 14:19 cinit +-rwx------ 1 nico users 50860 Jun 15 14:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-20:37:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-20:37:50 new file mode 100644 index 00000000..1196c864 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-15-20:37:50 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 15 20:37 cinit +-rwx------ 1 nico users 50860 Jun 15 20:37 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-12:18:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-12:18:07 new file mode 100644 index 00000000..43633af1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-12:18:07 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 16 12:18 cinit +-rwx------ 1 nico users 50860 Jun 16 12:18 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-14:18:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-14:18:59 new file mode 100644 index 00000000..82a8e92a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-14:18:59 @@ -0,0 +1,3 @@ +total 100 +-rwx------ 1 nico users 51800 Jun 16 14:18 cinit +-rwx------ 1 nico users 47568 Jun 16 14:18 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-14:19:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-14:19:22 new file mode 100644 index 00000000..14d12028 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-16-14:19:22 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47568 Jun 16 14:19 cinit +-rwx------ 1 nico users 46760 Jun 16 14:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-17-19:03:48 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-17-19:03:48 new file mode 100644 index 00000000..e379e004 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-17-19:03:48 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47568 Jun 17 19:03 cinit +-rwx------ 1 nico users 46760 Jun 17 19:03 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-12:16:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-12:16:40 new file mode 100644 index 00000000..1f0c3325 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-12:16:40 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 20 12:16 cinit +-rwx------ 1 nico users 50860 Jun 20 12:16 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-15:16:31 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-15:16:31 new file mode 100644 index 00000000..75dc3e7a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-15:16:31 @@ -0,0 +1,3 @@ +total 136 +-rwx------ 1 nico users 68355 Jun 20 15:16 cinit +-rwx------ 1 nico users 66247 Jun 20 15:16 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-16:29:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-16:29:28 new file mode 100644 index 00000000..1294bde5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-16:29:28 @@ -0,0 +1,3 @@ +total 136 +-rwx------ 1 nico users 68355 Jun 20 16:29 cinit +-rwx------ 1 nico users 66247 Jun 20 15:16 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-16:29:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-16:29:50 new file mode 100644 index 00000000..69fe7490 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-20-16:29:50 @@ -0,0 +1,3 @@ +total 136 +-rwx------ 1 nico users 68355 Jun 20 16:29 cinit +-rwx------ 1 nico users 66247 Jun 20 16:29 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-21-11:53:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-21-11:53:35 new file mode 100644 index 00000000..4a1e7b6d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-21-11:53:35 @@ -0,0 +1,3 @@ +total 192 +-rwx------ 1 nico users 102039 Jun 21 11:53 cinit +-rwx------ 1 nico users 87871 Jun 21 11:53 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-07:33:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-07:33:11 new file mode 100644 index 00000000..e6c8ff14 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-07:33:11 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47544 Jun 22 07:33 cinit +-rwx------ 1 nico users 46760 Jun 22 07:33 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-07:57:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-07:57:13 new file mode 100644 index 00000000..17161d13 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-07:57:13 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47536 Jun 22 07:57 cinit +-rwx------ 1 nico users 46760 Jun 22 07:57 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-08:08:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-08:08:40 new file mode 100644 index 00000000..770083f3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-08:08:40 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47424 Jun 22 08:08 cinit +-rwx------ 1 nico users 46760 Jun 22 08:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-08:30:42 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-08:30:42 new file mode 100644 index 00000000..aa95fb3c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-08:30:42 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47360 Jun 22 08:30 cinit +-rwx------ 1 nico users 46760 Jun 22 08:30 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-09:19:42 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-09:19:42 new file mode 100644 index 00000000..70c261bb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-09:19:42 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 22 09:19 cinit +-rwx------ 1 nico users 50860 Jun 22 09:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-10:35:02 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-10:35:02 new file mode 100644 index 00000000..41fcadb2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-10:35:02 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47584 Jun 22 10:35 cinit +-rwx------ 1 nico users 46760 Jun 22 10:35 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-10:43:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-10:43:24 new file mode 100644 index 00000000..b8bc4076 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-10:43:24 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 22 10:43 cinit +-rwx------ 1 nico users 50860 Jun 22 10:43 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-12:42:57 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-12:42:57 new file mode 100644 index 00000000..c8119859 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-12:42:57 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47568 Jun 22 12:42 cinit +-rwx------ 1 nico users 46760 Jun 22 12:42 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-13:52:41 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-13:52:41 new file mode 100644 index 00000000..793b92fa --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-13:52:41 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47624 Jun 22 13:52 cinit +-rwx------ 1 nico users 46760 Jun 22 13:52 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-13:59:40 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-13:59:40 new file mode 100644 index 00000000..d114c557 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-13:59:40 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47624 Jun 22 13:59 cinit +-rwx------ 1 nico users 46760 Jun 22 13:59 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-14:19:41 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-14:19:41 new file mode 100644 index 00000000..8d56882f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-14:19:41 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47640 Jun 22 14:19 cinit +-rwx------ 1 nico users 46760 Jun 22 14:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-14:37:18 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-14:37:18 new file mode 100644 index 00000000..b7c3e4c2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-22-14:37:18 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47648 Jun 22 14:37 cinit +-rwx------ 1 nico users 46760 Jun 22 14:37 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-23-06:22:23 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-23-06:22:23 new file mode 100644 index 00000000..9e38a5e0 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-23-06:22:23 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47648 Jun 23 06:22 cinit +-rwx------ 1 nico users 46760 Jun 23 06:22 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-24-17:53:55 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-24-17:53:55 new file mode 100644 index 00000000..3b750eaf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-24-17:53:55 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47720 Jun 24 17:53 cinit +-rwx------ 1 nico users 46760 Jun 24 17:53 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-24-17:55:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-24-17:55:29 new file mode 100644 index 00000000..c30dcaf6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-24-17:55:29 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47720 Jun 24 17:55 cinit +-rwx------ 1 nico users 46760 Jun 24 17:55 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-25-11:56:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-25-11:56:07 new file mode 100644 index 00000000..0f917aee --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-25-11:56:07 @@ -0,0 +1,3 @@ +total 96 +-rwx------ 1 nico users 47712 Jun 25 11:56 cinit +-rwx------ 1 nico users 46760 Jun 25 11:56 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-26-13:19:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-26-13:19:49 new file mode 100644 index 00000000..a4de830b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-06-26-13:19:49 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jun 26 13:19 cinit +-rwx------ 1 nico users 50860 Jun 26 13:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:07:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:07:13 new file mode 100644 index 00000000..e2c59ddf --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:07:13 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:07 cinit +-rwx------ 1 nico users 50860 Jul 6 08:07 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:11:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:11:07 new file mode 100644 index 00000000..7e4c645b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:11:07 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:11 cinit +-rwx------ 1 nico users 50860 Jul 6 08:11 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:12:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:12:20 new file mode 100644 index 00000000..e562350c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:12:20 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:12 cinit +-rwx------ 1 nico users 50860 Jul 6 08:12 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:13:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:13:39 new file mode 100644 index 00000000..32fd8268 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:13:39 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:13 cinit +-rwx------ 1 nico users 50860 Jul 6 08:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:14:19 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:14:19 new file mode 100644 index 00000000..f68919a5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:14:19 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:14 cinit +-rwx------ 1 nico users 50860 Jul 6 08:14 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:14:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:14:59 new file mode 100644 index 00000000..f68919a5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:14:59 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:14 cinit +-rwx------ 1 nico users 50860 Jul 6 08:14 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:15:56 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:15:56 new file mode 100644 index 00000000..cf26e6f7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-08:15:56 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 08:15 cinit +-rwx------ 1 nico users 50860 Jul 6 08:15 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:08:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:08:05 new file mode 100644 index 00000000..d5f0f2c4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:08:05 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 10:08 cinit +-rwx------ 1 nico users 50860 Jul 6 10:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:22 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:22 new file mode 100644 index 00000000..d5f0f2c4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:22 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 10:08 cinit +-rwx------ 1 nico users 50860 Jul 6 10:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:31 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:31 new file mode 100644 index 00000000..6bd138ad --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:31 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 10:12 cinit +-rwx------ 1 nico users 50860 Jul 6 10:12 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:49 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:49 new file mode 100644 index 00000000..6bd138ad --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:12:49 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 10:12 cinit +-rwx------ 1 nico users 50860 Jul 6 10:12 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:13:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:13:08 new file mode 100644 index 00000000..2b09e08b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-07-06-10:13:08 @@ -0,0 +1,3 @@ +total 108 +-rwx------ 1 nico users 54956 Jul 6 10:13 cinit +-rwx------ 1 nico users 50860 Jul 6 10:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-08-01:00:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-08-01:00:08 new file mode 100644 index 00000000..9c0c4908 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-08-01:00:08 @@ -0,0 +1,3 @@ +total 840 +-rwx------ 1 root root 429764 Aug 8 01:00 cinit +-rwx------ 1 root root 426052 Aug 8 01:00 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-21:21:34 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-21:21:34 new file mode 100644 index 00000000..e651a8ed --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-21:21:34 @@ -0,0 +1,3 @@ +insgesamt 868 +-rwx------ 1 root root 444508 2005-08-29 21:21 cinit +-rwx------ 1 root root 440412 2005-08-29 21:21 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-21:48:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-21:48:00 new file mode 100644 index 00000000..caa24bde --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-21:48:00 @@ -0,0 +1,3 @@ +insgesamt 856 +-rwx------ 1 root root 437404 2005-08-29 21:47 cinit +-rwx------ 1 root root 436316 2005-08-29 21:48 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-23:50:55 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-23:50:55 new file mode 100644 index 00000000..a279aee3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-08-29-23:50:55 @@ -0,0 +1,3 @@ +insgesamt 856 +-rwx------ 1 nico nico 437564 2005-08-29 23:50 cinit +-rwx------ 1 nico nico 436316 2005-08-29 23:50 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-03:36:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-03:36:59 new file mode 100644 index 00000000..01e555f6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-03:36:59 @@ -0,0 +1,3 @@ +insgesamt 868 +-rwx------ 1 nico nico 444508 2005-09-03 03:36 cinit +-rwx------ 1 nico nico 440412 2005-09-03 03:36 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-04:34:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-04:34:35 new file mode 100644 index 00000000..1832930a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-04:34:35 @@ -0,0 +1,3 @@ +total 868 +-rwx------ 1 nico nico 444508 Sep 3 04:34 cinit +-rwx------ 1 nico nico 440412 Sep 3 04:34 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:51:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:51:17 new file mode 100644 index 00000000..4e465d06 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:51:17 @@ -0,0 +1,3 @@ +total 868 +-rwx------ 1 nico nico 444508 Sep 3 05:51 cinit +-rwx------ 1 nico nico 440412 Sep 3 05:51 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:54:20 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:54:20 new file mode 100644 index 00000000..9c040d29 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:54:20 @@ -0,0 +1,4 @@ +total 1300 +-rwx------ 1 nico nico 440412 Sep 3 05:54 ccontrol +-rwx------ 1 nico nico 444508 Sep 3 05:54 cinit +-rwx------ 1 nico nico 440412 Sep 3 05:54 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:57:00 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:57:00 new file mode 100644 index 00000000..ba396d14 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:57:00 @@ -0,0 +1,4 @@ +total 1300 +-rwx------ 1 nico nico 440412 Sep 3 05:57 ccontrol +-rwx------ 1 nico nico 444508 Sep 3 05:56 cinit +-rwx------ 1 nico nico 440412 Sep 3 05:56 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:58:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:58:07 new file mode 100644 index 00000000..65f0cc50 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-05:58:07 @@ -0,0 +1,4 @@ +insgesamt 1300 +-rwx------ 1 root root 440412 2005-09-03 05:58 ccontrol +-rwx------ 1 root root 444508 2005-09-03 05:58 cinit +-rwx------ 1 root root 440412 2005-09-03 05:58 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-09:01:59 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-09:01:59 new file mode 100644 index 00000000..880422a4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-03-09:01:59 @@ -0,0 +1,4 @@ +total 1300 +-rwxr-xr-x 1 root root 440412 Sep 3 09:01 ccontrol +-rwxr-xr-x 1 root root 444508 Sep 3 09:01 cinit +-rwxr-xr-x 1 root root 440412 Sep 3 09:01 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-05-19:41:12 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-05-19:41:12 new file mode 100644 index 00000000..0f07d86e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-05-19:41:12 @@ -0,0 +1,4 @@ +insgesamt 1300 +-rwx------ 1 root root 440412 2005-09-05 19:41 ccontrol +-rwx------ 1 root root 444508 2005-09-05 19:41 cinit +-rwx------ 1 root root 440412 2005-09-05 19:41 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-05-19:50:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-05-19:50:35 new file mode 100644 index 00000000..32ff19fb --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-05-19:50:35 @@ -0,0 +1,4 @@ +total 1300 +-rwxr-xr-x 1 root root 440412 Sep 5 19:50 ccontrol +-rwxr-xr-x 1 root root 444508 Sep 5 19:50 cinit +-rwxr-xr-x 1 root root 440412 Sep 5 19:50 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-24-01:42:38 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-24-01:42:38 new file mode 100644 index 00000000..0da6126e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-24-01:42:38 @@ -0,0 +1,4 @@ +insgesamt 1288 +-rwx------ 1 nico nico 436316 2005-09-24 01:42 ccontrol +-rwx------ 1 nico nico 437628 2005-09-24 01:42 cinit +-rwx------ 1 nico nico 436316 2005-09-24 01:42 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-30-22:50:50 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-30-22:50:50 new file mode 100644 index 00000000..0d510174 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-30-22:50:50 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-09-30 22:50 ccontrol +-rwx------ 1 nico nico 437340 2005-09-30 22:50 cinit +-rwx------ 1 nico nico 436316 2005-09-30 22:50 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-30-23:06:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-30-23:06:39 new file mode 100644 index 00000000..23450914 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-09-30-23:06:39 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-09-30 23:06 ccontrol +-rwx------ 1 nico nico 437340 2005-09-30 23:06 cinit +-rwx------ 1 nico nico 436316 2005-09-30 23:06 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-01-22:09:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-01-22:09:13 new file mode 100644 index 00000000..a62b9eb2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-01-22:09:13 @@ -0,0 +1,4 @@ +insgesamt 1288 +-rwx------ 1 nico nico 436316 2005-10-01 22:09 ccontrol +-rwx------ 1 nico nico 437308 2005-10-01 22:09 cinit +-rwx------ 1 nico nico 436316 2005-10-01 22:09 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-01-22:17:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-01-22:17:39 new file mode 100644 index 00000000..b1d8b11b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-01-22:17:39 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-10-01 22:17 ccontrol +-rwx------ 1 nico nico 437532 2005-10-01 22:17 cinit +-rwx------ 1 nico nico 436316 2005-10-01 22:17 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:12:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:12:29 new file mode 100644 index 00000000..e5f7b13d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:12:29 @@ -0,0 +1,4 @@ +insgesamt 1300 +-rwx------ 1 nico nico 440412 2005-10-02 11:12 ccontrol +-rwx------ 1 nico nico 444508 2005-10-02 11:12 cinit +-rwx------ 1 nico nico 440412 2005-10-02 11:12 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:13:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:13:35 new file mode 100644 index 00000000..d7c14471 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:13:35 @@ -0,0 +1,4 @@ +insgesamt 1300 +-rwx------ 1 nico nico 440412 2005-10-02 11:12 ccontrol +-rwx------ 1 nico nico 444508 2005-10-02 11:13 cinit +-rwx------ 1 nico nico 440412 2005-10-02 11:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:13:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:13:43 new file mode 100644 index 00000000..1711d01a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-11:13:43 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-10-02 11:13 ccontrol +-rwx------ 1 nico nico 437884 2005-10-02 11:13 cinit +-rwx------ 1 nico nico 436316 2005-10-02 11:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-16:00:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-16:00:24 new file mode 100644 index 00000000..ab23228c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-16:00:24 @@ -0,0 +1,4 @@ +total 1284 +-rwx------ 1 nico nico 436316 Oct 2 16:00 ccontrol +-rwx------ 1 nico nico 437884 Oct 2 16:00 cinit +-rwx------ 1 nico nico 436316 Oct 2 16:00 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-23:17:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-23:17:11 new file mode 100644 index 00000000..92041cd9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-02-23:17:11 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-10-02 23:17 ccontrol +-rwx------ 1 nico nico 437884 2005-10-02 23:17 cinit +-rwx------ 1 nico nico 436316 2005-10-02 23:17 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-03-00:54:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-03-00:54:39 new file mode 100644 index 00000000..df47a057 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-03-00:54:39 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-10-03 00:54 ccontrol +-rwx------ 1 nico nico 437884 2005-10-03 00:54 cinit +-rwx------ 1 nico nico 436316 2005-10-03 00:54 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-03-00:56:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-03-00:56:29 new file mode 100644 index 00000000..08db7fec --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-03-00:56:29 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 nico nico 436316 2005-10-03 00:56 ccontrol +-rwx------ 1 nico nico 437884 2005-10-03 00:56 cinit +-rwx------ 1 nico nico 436316 2005-10-03 00:56 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:43:02 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:43:02 new file mode 100644 index 00000000..027a5b67 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:43:02 @@ -0,0 +1,4 @@ +insgesamt 1292 +-rwxr-xr-x 1 pp pp 433912 Okt 13 09:43 ccontrol +-rwxr-xr-x 1 pp pp 436664 Okt 13 09:43 cinit +-rwxr-xr-x 1 pp pp 434360 Okt 13 09:43 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:51:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:51:08 new file mode 100644 index 00000000..a0fdf121 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:51:08 @@ -0,0 +1,4 @@ +insgesamt 1292 +-rwxr-xr-x 1 pp pp 433912 Okt 13 09:43 ccontrol +-rwxr-xr-x 1 pp pp 436664 Okt 13 09:51 cinit +-rwxr-xr-x 1 pp pp 434360 Okt 13 09:43 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:55:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:55:52 new file mode 100644 index 00000000..d54a7ff4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:55:52 @@ -0,0 +1,4 @@ +insgesamt 1292 +-rwxr-xr-x 1 pp pp 433912 Okt 13 09:55 ccontrol +-rwxr-xr-x 1 pp pp 436664 Okt 13 09:55 cinit +-rwxr-xr-x 1 pp pp 434360 Okt 13 09:55 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:57:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:57:11 new file mode 100644 index 00000000..3b1af9ec --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:57:11 @@ -0,0 +1,4 @@ +insgesamt 1292 +-rwxr-xr-x 1 pp pp 433912 Okt 13 09:57 ccontrol +-rwxr-xr-x 1 pp pp 436664 Okt 13 09:57 cinit +-rwxr-xr-x 1 pp pp 434360 Okt 13 09:57 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:58:04 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:58:04 new file mode 100644 index 00000000..5c6da786 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-09:58:04 @@ -0,0 +1,4 @@ +insgesamt 1292 +-rwxr-xr-x 1 pp pp 433912 Okt 13 09:58 ccontrol +-rwxr-xr-x 1 pp pp 436664 Okt 13 09:58 cinit +-rwxr-xr-x 1 pp pp 434360 Okt 13 09:58 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-10:07:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-10:07:28 new file mode 100644 index 00000000..58d25315 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-13-10:07:28 @@ -0,0 +1,4 @@ +insgesamt 1292 +-rwxr-xr-x 1 pp pp 433912 Okt 13 10:07 ccontrol +-rwxr-xr-x 1 pp pp 436664 Okt 13 10:07 cinit +-rwxr-xr-x 1 pp pp 434360 Okt 13 10:07 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-15-15:26:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-15-15:26:52 new file mode 100644 index 00000000..a88291e2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-15-15:26:52 @@ -0,0 +1,4 @@ +insgesamt 1284 +-rwx------ 1 root root 436316 2005-10-15 15:26 ccontrol +-rwx------ 1 root root 437916 2005-10-15 15:26 cinit +-rwx------ 1 root root 436316 2005-10-15 15:26 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-15-21:23:56 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-15-21:23:56 new file mode 100644 index 00000000..43a4504d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-10-15-21:23:56 @@ -0,0 +1,4 @@ +total 36 +-rwx------ 1 nico nico 9148 Oct 15 21:23 ccontrol +-rwx------ 1 nico nico 11872 Oct 15 21:23 cinit +-rwx------ 1 nico nico 9768 Oct 15 21:23 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-11-17-17:03:53 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-11-17-17:03:53 new file mode 100644 index 00000000..78543f15 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2005-11-17-17:03:53 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2005-11-17 17:03 ccontrol +-rwx------ 1 nico nico 11872 2005-11-17 17:03 cinit +-rwx------ 1 nico nico 9768 2005-11-17 17:03 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-11-23:45:54 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-11-23:45:54 new file mode 100644 index 00000000..f4852c81 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-11-23:45:54 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9132 2006-02-11 23:45 ccontrol +-rwx------ 1 nico nico 11476 2006-02-11 23:45 cinit +-rwx------ 1 nico nico 9768 2006-02-11 23:45 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:06:11 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:06:11 new file mode 100644 index 00000000..2fe41351 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:06:11 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9132 2006-02-11 23:45 ccontrol +-rwx------ 1 nico nico 11476 2006-02-12 00:06 cinit +-rwx------ 1 nico nico 9768 2006-02-12 00:06 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:06:42 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:06:42 new file mode 100644 index 00000000..bf2ddc36 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:06:42 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-12 00:06 ccontrol +-rwx------ 1 nico nico 11560 2006-02-12 00:06 cinit +-rwx------ 1 nico nico 9768 2006-02-12 00:06 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:08:24 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:08:24 new file mode 100644 index 00000000..e25a49ac --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:08:24 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-12 00:08 ccontrol +-rwx------ 1 nico nico 11556 2006-02-12 00:08 cinit +-rwx------ 1 nico nico 9768 2006-02-12 00:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:09:33 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:09:33 new file mode 100644 index 00000000..0b64fa00 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:09:33 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-12 00:09 ccontrol +-rwx------ 1 nico nico 11556 2006-02-12 00:09 cinit +-rwx------ 1 nico nico 9768 2006-02-12 00:09 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:13:32 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:13:32 new file mode 100644 index 00000000..b6c5c38e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-12-00:13:32 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-12 00:13 ccontrol +-rwx------ 1 nico nico 11500 2006-02-12 00:13 cinit +-rwx------ 1 nico nico 9768 2006-02-12 00:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-16-23:57:29 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-16-23:57:29 new file mode 100644 index 00000000..86b9fda9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-16-23:57:29 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-16 23:57 ccontrol +-rwx------ 1 nico nico 11620 2006-02-16 23:57 cinit +-rwx------ 1 nico nico 9768 2006-02-16 23:57 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-00:16:18 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-00:16:18 new file mode 100644 index 00000000..28c853a5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-00:16:18 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-16 23:57 ccontrol +-rwx------ 1 nico nico 11636 2006-02-17 00:16 cinit +-rwx------ 1 nico nico 9768 2006-02-17 00:16 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-00:31:08 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-00:31:08 new file mode 100644 index 00000000..b95123d3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-00:31:08 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-17 00:31 ccontrol +-rwx------ 1 nico nico 11636 2006-02-17 00:31 cinit +-rwx------ 1 nico nico 9768 2006-02-17 00:31 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-22:48:35 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-22:48:35 new file mode 100644 index 00000000..5935acfe --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-17-22:48:35 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-17 22:48 ccontrol +-rwx------ 1 nico nico 11636 2006-02-17 22:48 cinit +-rwx------ 1 nico nico 9768 2006-02-17 22:48 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:03:54 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:03:54 new file mode 100644 index 00000000..9222f0b1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:03:54 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:03 ccontrol +-rwx------ 1 nico nico 11680 2006-02-20 20:03 cinit +-rwx------ 1 nico nico 9768 2006-02-20 19:43 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:04:33 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:04:33 new file mode 100644 index 00000000..c5797edc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:04:33 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:03 ccontrol +-rwx------ 1 nico nico 11680 2006-02-20 20:04 cinit +-rwx------ 1 nico nico 9768 2006-02-20 20:04 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:04:36 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:04:36 new file mode 100644 index 00000000..fbcf9fa5 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:04:36 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:04 ccontrol +-rwx------ 1 nico nico 11680 2006-02-20 20:04 cinit +-rwx------ 1 nico nico 9768 2006-02-20 20:04 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:07:47 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:07:47 new file mode 100644 index 00000000..7e1fe18f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:07:47 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:04 ccontrol +-rwx------ 1 nico nico 11680 2006-02-20 20:07 cinit +-rwx------ 1 nico nico 9768 2006-02-20 20:07 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:08:04 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:08:04 new file mode 100644 index 00000000..df9d08a8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:08:04 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:08 ccontrol +-rwx------ 1 nico nico 11680 2006-02-20 20:08 cinit +-rwx------ 1 nico nico 9768 2006-02-20 20:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:12:33 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:12:33 new file mode 100644 index 00000000..2b4fda40 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:12:33 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:12 ccontrol +-rwx------ 1 nico nico 11676 2006-02-20 20:12 cinit +-rwx------ 1 nico nico 9768 2006-02-20 20:12 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:14:56 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:14:56 new file mode 100644 index 00000000..bccb5d65 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-02-20-20:14:56 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9148 2006-02-20 20:14 ccontrol +-rwx------ 1 nico nico 11676 2006-02-20 20:14 cinit +-rwx------ 1 nico nico 9768 2006-02-20 20:14 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-01-23:32:43 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-01-23:32:43 new file mode 100644 index 00000000..fcbaf372 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-01-23:32:43 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9164 2006-06-01 23:32 ccontrol +-rwx------ 1 nico nico 11640 2006-06-01 23:32 cinit +-rwx------ 1 nico nico 9768 2006-06-01 23:32 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-01:08:28 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-01:08:28 new file mode 100644 index 00000000..7683546c --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-01:08:28 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9164 2006-06-02 01:08 ccontrol +-rwx------ 1 nico nico 11688 2006-06-02 01:08 cinit +-rwx------ 1 nico nico 9768 2006-06-02 01:08 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-01:29:13 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-01:29:13 new file mode 100644 index 00000000..adbc6846 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-01:29:13 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9164 2006-06-02 01:29 ccontrol +-rwx------ 1 nico nico 11604 2006-06-02 01:29 cinit +-rwx------ 1 nico nico 9768 2006-06-02 01:29 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:13:39 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:13:39 new file mode 100644 index 00000000..46eaef4f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:13:39 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9164 2006-06-02 11:13 ccontrol +-rwx------ 1 nico nico 11604 2006-06-02 11:13 cinit +-rwx------ 1 nico nico 9768 2006-06-02 11:13 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:36:37 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:36:37 new file mode 100644 index 00000000..306402f6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:36:37 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9164 2006-06-02 11:36 ccontrol +-rwx------ 1 nico nico 11604 2006-06-02 11:36 cinit +-rwx------ 1 nico nico 9768 2006-06-02 11:36 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:46:07 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:46:07 new file mode 100644 index 00000000..7b96d3d4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-11:46:07 @@ -0,0 +1,4 @@ +insgesamt 36 +-rwx------ 1 nico nico 9164 2006-06-02 11:46 ccontrol +-rwx------ 1 nico nico 11604 2006-06-02 11:46 cinit +-rwx------ 1 nico nico 9768 2006-06-02 11:46 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:17:17 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:17:17 new file mode 100644 index 00000000..7bb59095 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:17:17 @@ -0,0 +1,4 @@ +insgesamt 48 +-rwx------ 1 nico nico 12316 2006-06-02 15:17 ccontrol +-rwx------ 1 nico nico 16268 2006-06-02 15:17 cinit +-rwx------ 1 nico nico 13432 2006-06-02 15:17 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:19:05 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:19:05 new file mode 100644 index 00000000..ce65256f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:19:05 @@ -0,0 +1,4 @@ +insgesamt 48 +-rwx------ 1 nico nico 12316 2006-06-02 15:19 ccontrol +-rwx------ 1 nico nico 16268 2006-06-02 15:19 cinit +-rwx------ 1 nico nico 13432 2006-06-02 15:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:19:52 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:19:52 new file mode 100644 index 00000000..ce65256f --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-06-02-15:19:52 @@ -0,0 +1,4 @@ +insgesamt 48 +-rwx------ 1 nico nico 12316 2006-06-02 15:19 ccontrol +-rwx------ 1 nico nico 16268 2006-06-02 15:19 cinit +-rwx------ 1 nico nico 13432 2006-06-02 15:19 cservice diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-11-29-235707 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-11-29-235707 new file mode 100644 index 00000000..c2c83117 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-11-29-235707 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73645 2006-11-29 23:57 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-11-29-235834 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-11-29-235834 new file mode 100644 index 00000000..c2c83117 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-11-29-235834 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73645 2006-11-29 23:57 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-172536 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-172536 new file mode 100644 index 00000000..4079d5db --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-172536 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73617 2006-12-02 17:25 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-174429 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-174429 new file mode 100644 index 00000000..5506928d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-174429 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73497 2006-12-02 17:44 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-182536 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-182536 new file mode 100644 index 00000000..14526d13 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-02-182536 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 72092 2006-12-02 18:25 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-173231 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-173231 new file mode 100644 index 00000000..aca9d380 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-173231 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71944 2006-12-03 17:32 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-174544 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-174544 new file mode 100644 index 00000000..3c1cfea2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-174544 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71952 2006-12-03 17:45 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-185602 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-185602 new file mode 100644 index 00000000..d90770a2 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-185602 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71836 2006-12-03 18:56 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-185901 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-185901 new file mode 100644 index 00000000..61cc9bf8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-185901 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71768 2006-12-03 18:59 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-191215 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-191215 new file mode 100644 index 00000000..4f2a2fa1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-03-191215 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71736 2006-12-03 19:12 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-06-084947 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-06-084947 new file mode 100644 index 00000000..487af844 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-06-084947 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71736 2006-12-06 08:49 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-06-180205 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-06-180205 new file mode 100644 index 00000000..a1665a41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-06-180205 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-06 18:02 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213559 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213559 new file mode 100644 index 00000000..a1665a41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213559 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-06 18:02 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213702 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213702 new file mode 100644 index 00000000..a1665a41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213702 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-06 18:02 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213717 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213717 new file mode 100644 index 00000000..a1665a41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213717 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-06 18:02 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213739 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213739 new file mode 100644 index 00000000..a1665a41 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-213739 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-06 18:02 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-215315 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-215315 new file mode 100644 index 00000000..3e144e5d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-215315 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-14 21:53 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-215334 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-215334 new file mode 100644 index 00000000..3e144e5d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2006-12-14-215334 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 73466 2006-12-14 21:53 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-17-210059 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-17-210059 new file mode 100644 index 00000000..69179604 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-17-210059 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 75783 2007-02-17 20:59 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-23-202443 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-23-202443 new file mode 100644 index 00000000..19cb71b8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-23-202443 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 69439 2007-02-23 20:15 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-23-202720 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-23-202720 new file mode 100644 index 00000000..19cb71b8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-02-23-202720 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 69439 2007-02-23 20:15 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-03-07-231936 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-03-07-231936 new file mode 100644 index 00000000..c2ef3d0b --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-03-07-231936 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71213 2007-03-07 23:18 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-04-06-011811 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-04-06-011811 new file mode 100644 index 00000000..73de8724 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2007-04-06-011811 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 71281 2007-04-06 01:17 src/cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2009-09-29-075620 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2009-09-29-075620 new file mode 100644 index 00000000..7719cb7d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2009-09-29-075620 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 101258 2009-09-29 07:39 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/2009-11-26-075836 b/software/cinit/browse_source/cinit-0.3pre19/src/size/2009-11-26-075836 new file mode 100644 index 00000000..6d36174a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/2009-11-26-075836 @@ -0,0 +1 @@ +-rwx------ 1 nico nico 101274 2009-11-26 07:58 cinit diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/size/README b/software/cinit/browse_source/cinit-0.3pre19/src/size/README new file mode 100644 index 00000000..4cd30360 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/size/README @@ -0,0 +1 @@ +Sizes of cinit, tracked during development. diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/check_add_deps.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/check_add_deps.c new file mode 100644 index 00000000..b3fcd691 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/check_add_deps.c @@ -0,0 +1,128 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Add dependencies to a service + */ + +#include /* getcwd */ + +#include /* DIR */ +#include /* errno */ + +#include /* PATH_MAX */ +#include /* malloc */ +#include /* strcpy */ + +#include "intern.h" /* mini_printf */ +#include "messages.h" /* MSG_* */ +#include "svc-intern.h" /* DEP_* */ + +int check_add_deps(struct listitem *svc, int type) +{ + char buf[PATH_MAX + 1]; + char oldpath[PATH_MAX + 1]; + struct dirent *tdirent; + struct dep *deps = NULL; + struct listitem *new_svc; + DIR *d_tmp; + + /* remember where we started */ + if(!getcwd(oldpath, PATH_MAX + 1)) { + print_errno(MSG_GETCWD); + return 0; + } + + /* Create path */ + strncpy(buf, svc->abs_path, PATH_MAX+1); + if(type == DEP_NEEDS) { + if(!path_append(buf, C_NEEDS)) return 0; + } else { + if(!path_append(buf, C_WANTS)) return 0; + } + + d_tmp = opendir(buf); + if(d_tmp == NULL) { + if(errno != ENOENT) { + print_errno(buf); + return 0; + } + return 1; /* it's fine when there's no dependencies */ + } + + if(chdir(buf) == -1) { /* change to needs or wants */ + print_errno(buf); + return 0; + } + + while((tdirent = readdir(d_tmp)) != NULL) { + if(*(tdirent->d_name) == '.') continue; /* ignore .* */ + + /* + * skip non-working directories / broken links path_absolute reports + * errors on failure + */ + if(!path_absolute(tdirent->d_name, buf, PATH_MAX + 1)) continue; + + /* 1. create the service we depend on 2. initialize its dependencies */ + if(!(new_svc = gen_svc_tree(buf))) return 0; + + /* + * We need ALL dependencies, as we are called only once per service; no + * need to test that first! And the other service CANNOT know anything + * about us yet, so we always add us to its list. + */ + + /* + * Dependencies: - a.needs b; add b to the list of dependencies. - + * a.needs b; add a to the list of needed by b. 1. check whether the + * dependency already exists 2. otherwise add it 3. do it once for needs, + * once for needed_by + */ + + /* create a dependency entry containing us */ + deps = dep_create(svc); + if(!deps) return 0; + + if(type == DEP_NEEDS) { + /* add us to the other service */ + dep_entry_add(&(new_svc->needed_by), deps); + + /* add other service to us */ + deps = dep_create(new_svc); + if(!deps) return 0; + dep_entry_add(&(svc->needs), deps); + } else { + /* add us to the other service */ + dep_entry_add(&(new_svc->wanted_by), deps); + + /* add other service to us */ + deps = dep_create(new_svc); + if(!deps) return 0; + dep_entry_add(&(svc->wants), deps); + } + } + if(chdir(oldpath) == -1) { + print_errno(buf); + return 0; + } + closedir(d_tmp); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_create.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_create.c new file mode 100644 index 00000000..1bf513ee --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_create.c @@ -0,0 +1,38 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Create dependency + */ + +#include /* NULL */ +#include /* malloc() */ +#include "svc-intern.h" /* structs */ + +/* search for an entry by path, reverse: from end to the beginning */ +struct dep *dep_create(struct listitem *svc) +{ + struct dep *entry; + + entry = malloc(sizeof(struct dep)); + if(!entry) return NULL; + entry->svc = svc; + + return entry; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_entry_add.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_entry_add.c new file mode 100644 index 00000000..41b67d8d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_entry_add.c @@ -0,0 +1,44 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * List handling: Add a new item to a (non-)empty list + */ + +#include "svc-intern.h" /* types */ + +/* + * list: pointer to the list + * new: pointer to data to insert (already filled up) + * + * We add the new element BEFORE the existing element! + */ +void dep_entry_add(struct dep **deplist, struct dep *new) +{ + if(!(*deplist)) { /* new list */ + *deplist = new; + (*deplist)->prev = *deplist; + (*deplist)->next = *deplist; + } else { /* already existing */ + new->next = *deplist; /* new-> first */ + new->prev = (*deplist)->prev; /* last <- new */ + (*deplist)->prev->next = new; /* last -> new */ + (*deplist)->prev = new; /* new <- first */ + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_entry_del.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_entry_del.c new file mode 100644 index 00000000..460b37ce --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_entry_del.c @@ -0,0 +1,55 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * List handling: Add a new item to a (non-)empty list + */ + +#include /* NULL */ +#include /* free() */ +#include "svc-intern.h" /* struct *dep */ + +/* + * tmp: pointer to data to remove (must not be NULL) + * + * Returns either the next object or NULL if there's no next object + */ +struct dep *dep_entry_del(struct dep *del) +{ + struct dep *tmp; + + /* + * last service in the list + */ + if(del->next == del && del->prev == del) { + tmp = NULL; + } else { + /* + * remove from list + */ + del->prev->next = del->next; + del->next->prev = del->prev; + tmp = del->next; + } + + free(del); + + return tmp; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_needs_wants_add.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_needs_wants_add.c new file mode 100644 index 00000000..cfb7b242 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/dep_needs_wants_add.c @@ -0,0 +1,81 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Add all wants or needs from a specific service to dep list + * -> this builds the needs and needed_by and + * -> or this builds the wants and wanted_by and + * + * This function is used to fillup the starting list with dependencies + * after a service has sucessfully been executed. + */ + +#include /* NULL */ +#include "svc-intern.h" /* struct *dep */ +#include "svc.h" /* struct *dep */ + +/* + * list: pointer to the list + * svc: pointer to data to the service + */ + +int dep_needs_wants_add(struct dep **list, struct listitem *svc, int type) +{ + struct dep *tmp, *new, *end; + + if(type == DEP_NEEDS) { + end = svc->needed_by; + } else { + end = svc->wanted_by; + } + + /* + * Place to the first dependency of this service + */ + tmp = end; + if(tmp != NULL) { + do { + /* + * Add service to the starter list, which - should be started once - + * should be respawned (both VIRGIN services!) - and which are not + * already in the list! + */ + if(((tmp->svc->status & CINIT_ST_SH_ONCE) || + (tmp->svc->status & CINIT_ST_SH_RESPAWN)) && + !(tmp->svc->status & CINIT_ST_IN_LIST)) { + new = dep_create(tmp->svc); + if(!new) return 0; + tmp->svc->status |= CINIT_ST_IN_LIST; + dep_entry_add(list, new); + } + + /* + * FIXME: Clearify if we should go forward or backwards? this decision + * will influence starting order and may thereby add a minimal mount + * of speed enhancement As far as I can see it is not predictable, + * which way is better, because it heavily depends on the other + * services. If you know better, provide me with a patch ;-) + */ + + tmp = tmp->next; + } while(tmp != end); + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/gen_halt_tree.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/gen_halt_tree.c new file mode 100644 index 00000000..fee84d11 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/gen_halt_tree.c @@ -0,0 +1,64 @@ + +/******************************************************************************* + * + * 2007-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * This function reads the full service tree and generates + * a list of services to begin shutdown (those that are not + * wanted or needed by any other service). + */ + +#include /* NULL */ + +#include "svc-intern.h" /* structs */ +#include "intern.h" /* structs */ + +struct dep *gen_halt_list(struct listitem *svc_tree) +{ + struct dep *list = NULL, *new = NULL; + struct listitem *tmp; + + /* + * no tree? nothing to shutdown. + */ + if(!svc_tree) { + return NULL; + } + + /* + * find all services that do not depend on other services: - empty wants? + * (currently ignore them) - empty needs! + */ + tmp = svc_tree; + do { + if(tmp->needs == NULL) { + /* + * create new dependency + */ + new = dep_create(tmp); + if(!new) + return NULL; + + dep_entry_add(&list, new); + } + tmp = tmp->next; + } while(tmp != svc_tree); + + return list; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/gen_svc_tree.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/gen_svc_tree.c new file mode 100644 index 00000000..ceb4acf8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/gen_svc_tree.c @@ -0,0 +1,59 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Pre calculate the service tree (recursive calling) + */ + +#include + +#include "intern.h" /* functions */ +#include "svc.h" /* constants */ +#include "svc-intern.h" /* functions */ + +struct listitem *gen_svc_tree(char *svc) +{ + struct listitem *li; + struct dep *deps; + + /* only do something if the service is not already known */ + if((li = list_search(svc))) return li; + + /* create a template, so other instances won't try to recreate us */ + if(!(li = svc_create(svc))) return NULL; + + /* add dependencies */ + if(!check_add_deps(li, DEP_NEEDS)) return NULL; + if(!check_add_deps(li, DEP_WANTS)) return NULL; + + /* If it has no dependencies, then the service is a start service. */ + if(!li->wants && !li->needs) { + deps = dep_create(li); + if(!deps) return NULL; + dep_entry_add(&deps_pending, deps); + + /* + * Mark it as being in the startup list, so it does not get added again + * in a dep_needs_wants_add call + */ + li->status |= CINIT_ST_IN_LIST; + } + + return li; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_delete_byname.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_delete_byname.c new file mode 100644 index 00000000..5bceb289 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_delete_byname.c @@ -0,0 +1,47 @@ + +/******************************************************************************* + * + * 2005 Marcus Przyklink (downhill-clinux (at) burningchaos.org) + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * List handling + */ + +#include /* free */ +#include "intern.h" /* list_search */ +#include "svc-intern.h" /* listitem */ + +/* ... */ +int list_delete_byname(char *path) +{ + struct listitem *tmp; + + tmp = list_search(path); + + if(tmp == NULL) { + return 0; + } + + tmp->next->prev = tmp->prev; + tmp->prev->next = tmp->next; + + free(tmp); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_delete_bypointer.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_delete_bypointer.c new file mode 100644 index 00000000..d50b51b4 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_delete_bypointer.c @@ -0,0 +1,42 @@ + +/******************************************************************************* + * + * 2005 Marcus Przyklink (downhill-clinux (at) burningchaos.org) + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * List handling + */ + +#include /* free */ +#include "svc-intern.h" /* listitem */ + +int list_delete_bypointer(struct listitem *li) +{ + /* FIXME: add warning? this case should not happen */ + if(li == NULL) { + return 0; + } + + li->next->prev = li->prev; + li->prev->next = li->next; + + free(li); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_display_all.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_display_all.c new file mode 100644 index 00000000..b94758f3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_display_all.c @@ -0,0 +1,49 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Show all list elements - mainly for debugging + */ + +#include /* NULL */ + +#include "messages.h" /* D_PRINTF */ +#include "svc.h" + +int list_display_all() +{ + struct listitem *tmp; + + if(svc_list == NULL) { + return 0; + } else { + tmp = svc_list; + } + + do { + D_PRINTF("Service: "); + D_PRINTF(tmp->abs_path); + D_PRINTF("\n"); + + tmp = tmp->prev; + } while(tmp != svc_list); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_insert.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_insert.c new file mode 100644 index 00000000..9f87be69 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_insert.c @@ -0,0 +1,57 @@ +/******************************************************************************* + * + * 2005 Marcus Przyklink (downhill-clinux (at) burningchaos.org) + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Insert service into service list + * + */ + +#include /* uint32_t */ +#include /* malloc */ +#include /* bzero / memset */ +#include "svc-intern.h" /* the list pointer */ + +struct listitem *list_insert(char *path, uint32_t status) +{ + struct listitem *tmp; + + tmp = malloc(sizeof(struct listitem)); + if(tmp == NULL) return NULL; + memset(tmp, '\0', sizeof(struct listitem)); + + if(svc_list == NULL) { /* list is empty, we have to init it */ + svc_list = tmp; + svc_list->next = svc_list; + svc_list->prev = svc_list; + } else { /* list has members,add this one */ + tmp->next = svc_list; /* begin after the new element */ + tmp->prev = svc_list->prev; /* change to the ex-last */ + svc_list->prev->next = tmp; /* change last element */ + svc_list->prev = tmp; /* first refers to previous now */ + } + + cinit_cp_data(tmp->abs_path, path); + + tmp->status = status; + tmp->pid = 0; + tmp->changed = NULL; + + return tmp; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_modify.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_modify.c new file mode 100644 index 00000000..f527d98d --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_modify.c @@ -0,0 +1,57 @@ + +/******************************************************************************* + * + * 2005 Marcus Przyklink (downhill-clinux (at) burningchaos.org) + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * OBSOLETED. Not in use anymore. + * + * List handling + */ + +#error "NOT IN USE" + +#include +#include +#include "cinit.h" +#include "comm.h" /* for ST_OFF */ +#include "svc.h" /* for ST_OFF */ + +/* change pid and status of a process */ +int list_modify(char *path, int new_status, pid_t new_pid) +{ + struct listitem *tmp; + + tmp = list_search(path); + if(tmp == NULL) { + return 0; + } + + /* + * delete objects, which are killed + */ + if(new_status == ST_OFF) { + return list_delete(path); + } else { + tmp->status = new_status; + tmp->pid = new_pid; + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_search.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_search.c new file mode 100644 index 00000000..ff4578c8 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_search.c @@ -0,0 +1,46 @@ +/******************************************************************************* + * + * 2005 Marcus Przyklink (downhill-clinux (at) burningchaos.org) + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * List handling + */ + +#include /* NULL */ +#include /* strcmp */ +#include "svc-intern.h" /* struct listitem */ + +/* search for an entry by path, reverse: from end to the beginning */ +struct listitem *list_search(char *path) +{ + struct listitem *tmp; + + if(svc_list == NULL) return NULL; + + tmp = svc_list; + + do { + if(!strcmp(path, tmp->abs_path)) { + return tmp; + } + tmp = tmp->prev; + } while(tmp != svc_list); + + return NULL; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_search_pid.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_search_pid.c new file mode 100644 index 00000000..0633d95e --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/list_search_pid.c @@ -0,0 +1,45 @@ +/******************************************************************************* + * + * 2005 Marcus Przyklink (downhill-clinux (at) burningchaos.org) + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * List handling: Search by pid + * + */ + +#include /* NULL */ +#include /* pid_t */ +#include "svc-intern.h" /* struct listitem */ + +inline struct listitem *list_search_pid(pid_t pid) +{ + struct listitem *tmp; + + if(svc_list == NULL) return NULL; + + tmp = svc_list; + + do { + if(pid == tmp->pid) return tmp; /* found service */ + + tmp = tmp->prev; + } while(tmp != svc_list); + + return NULL; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/shutdown_services.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/shutdown_services.c new file mode 100644 index 00000000..da1e1cea --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/shutdown_services.c @@ -0,0 +1,48 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Shutdown all services: This is more or less the negative + * version of 'svc_tree_exec()' + */ + +#include "svc-intern.h" /* struct */ +#include "svc.h" /* defines */ + +void shutdown_services(struct listitem *svc) +{ + /* + * The shutdown procedure: + * + * - take the list of running services + * - begin at the first (could be any) service and + * - shutdown all services that depend on that service + * --> recursive + * - take the next service (if there is still one ;-) + */ + + while(svc) { + svc_stop_deps(svc, CINIT_SSSO_COMPLETE); + svc = svc->next; + list_delete_bypointer(svc->prev); + } + + return; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_add_needs.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_add_needs.c new file mode 100644 index 00000000..be6c6312 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_add_needs.c @@ -0,0 +1,92 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * OBSOLETED! + * + * List handling + */ + +#error "NOT IN USE" + +#include "cinit.h" +#include "messages.h" + +int svc_add_needs(char *needs, char *is_needed) +{ + struct listitem *svc_needs, *svc_is_needed; + + /* + * retrieve service entries in global service list + */ + svc_needs = svc_is_needed = NULL; + svc_needs = list_search(needs); + svc_is_needed = list_search(is_needed); + + /* + * and exit if one is missing + */ + if(!svc_needs || !svc_is_needed) { + return 0; + } + + /* + * first add needs + */ + + /* + * now add needed_by + */ + + malloc... /* for adding */ + if(svc->needs == NULL) { + svc->needs = neu; + } else { + svc->next = neu; + } + + /* + * write generic function for dependencies or even all lists + */ + dep_entry_add(list_pointer, new_entry); + + if(list == NULL) { /* list is empty, we have to init it */ + list = tmp; + list->after = list; + list->before = list; + } else { /* list has members,add this one */ + tmp->after = list; /* begin after the new element */ + tmp->before = list->before; /* change to the ex-last */ + list->before->after = tmp; /* change last element */ + list->before = tmp; /* first refers to previous now */ + } + + tmp->abs_path = malloc(strlen(path) + 1); + if(tmp->abs_path == NULL) { + LOG(MSG_ERR_ALLOC); + return 0; + } + + strcpy(tmp->abs_path, path); + tmp->status = status; + tmp->pid = 0; + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_create.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_create.c new file mode 100644 index 00000000..081a1b78 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_create.c @@ -0,0 +1,56 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Create a service, checking for existence is done before. + */ + +#include /* NULL */ +#include /* stat */ +#include /* errno */ + +#include "svc.h" /* constants */ +#include "svc-intern.h" /* listitem */ +#include "intern.h" /* path_append */ +#include "cinit.h" /* CINIT_DATA_LEN */ + +struct listitem *svc_create(char *svc) +{ + char buf[CINIT_DATA_LEN]; + struct stat statbuf; + struct listitem *li; + + li = list_insert(svc, -1); + if(!li) return NULL; + + cinit_cp_data(buf, svc); + if(!path_append(buf, C_RESPAWN)) return NULL; + + if(stat(buf, &statbuf) == -1) { + if(errno == ENOENT) { + svc_set_status(li, CINIT_ST_SH_ONCE); + } else { + return NULL; + } + } else { + svc_set_status(li, CINIT_ST_SH_RESPAWN); + } + + return li; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_disable.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_disable.c new file mode 100644 index 00000000..e0704bfc --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_disable.c @@ -0,0 +1,107 @@ +/******************************************************************************* + * + * 2007-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Stop a service + * + * Status: Written, looks finished, but untested. + * + * respawn: + * - disable respawning: set status to ST_RESPAWN_STOP + * - send term signal? no => can be done in "off" + * => set environment CINIT_SVC_PID + * once and respawn: + * - look for 'off' binary, execute if present + * - mark service as off or delete it? + */ + +#include /* NULL */ +#include /* fork */ +#include /* strerror */ +#include /* errno */ +#include /* PATH_MAX */ +#include /* waitpid */ + +#include "svc.h" /* struct * */ +#include "svc-intern.h" /* struct * */ +#include "messages.h" /* MSG_* */ +#include "intern.h" /* execute_sth */ +#include "cinit.h" /* CINIT_DATA_LEN */ +#include "signals.h" /* signal handling */ + +uint32_t svc_disable(struct listitem *li) +{ + char buf[CINIT_DATA_LEN]; + + svc_set_status(li, CINIT_ST_SH_STOP); + + li->pid = fork(); + + /********************** Error ************************/ + if(li->pid < 0) { + svc_report_status(li->abs_path, MSG_SVC_FORK, strerror(errno)); + svc_set_status(li, CINIT_ST_BAD_ERR); + return CINIT_ASW_ERR_INTERN; + } + + /********************** Parent / fork() ************************/ + if(li->pid > 0) { + /* FIXME: why duplicate? */ + svc_set_status(li, CINIT_ST_SH_STOP); + return CINIT_ASW_OK; + } + + /********************** Client / fork() ************************/ + svc_report_status(li->abs_path, MSG_SVC_STOP, NULL); + + cinit_cp_data(buf, li->abs_path); + if(!path_append(buf, C_OFF)) _exit(1); + + /* + * Check for existence + */ + li->status = file_exists(buf); + + if(li->status == FE_NOT) { + _exit(0); + } + + if(li->status == FE_FILE) { + /* + * FIXME: reset signals: Is this necessary? Or does fork clean it anyway? + */ + set_signals(SIGSTAGE_CLIENT); + + /* + * and now, fire it up + */ + execute_sth(buf); + } else { + /* + * FIXME: report? + */ + /* + * either no file or an error + */ + _exit(1); + } + + /* FIXME: we will never return ... */ + return CINIT_ASW_OK; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_fail.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_fail.c new file mode 100644 index 00000000..63ed7ff9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_fail.c @@ -0,0 +1,38 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Mark the service as being failed + */ + +#include "svc.h" +#include "svc-intern.h" + +void svc_fail(struct listitem *li) +{ + if(li->status & CINIT_ST_ONCE_RUN) + li->status = CINIT_ST_ONCE_FAIL; + else { + /* + * FIXME: do something senseful, record time of dead? + */ + li->status = CINIT_ST_RESPAWNING; + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_handle_pending.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_handle_pending.c new file mode 100644 index 00000000..c8ae2f68 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_handle_pending.c @@ -0,0 +1,110 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Handle pending services + * + */ + +#include /* NULL */ + +#include /* NULL */ +#include "intern.h" /* mini_printf */ +#include "messages.h" /* messages */ +#include "svc.h" /* svc_init */ +#include "svc-intern.h" /* svc_init */ + +/*********************************************************************** + * go through the pending list and exit at the end. + * we will be called again after something changed: + * svc_status_changed() is triggered by the death of one or more children + * and sets up changes + */ +int svc_handle_pending(struct dep *pending) +{ + struct dep *tmp = pending; + struct dep *hack; + struct timespec ts; + + mini_printf(MSG_TREE_EXEC, 1); + + /* apply changes to changed services */ + while(tmp != NULL) { + /* to be started */ + if(tmp->svc->status & (CINIT_ST_SH_ONCE | CINIT_ST_SH_RESPAWN)) { + svc_start(tmp->svc); + tmp = dep_entry_del(tmp); + } + + switch(svc_needs_status(tmp->svc)) { + case CINIT_SNS_NEEDS_STARTED: + /* + * FIXME: MSG_* + */ + svc_report_status(tmp->svc->abs_path, "Finished needs.", NULL); + + /* execute service, add dependencies, remove from list */ + svc_start(tmp->svc); + if(!dep_needs_wants_add(&tmp, tmp->svc, DEP_NEEDS)) return 0; + if(!dep_needs_wants_add(&tmp, tmp->svc, DEP_WANTS)) return 0; + tmp = dep_entry_del(tmp); + break; + + case CINIT_SNS_NEEDS_FAILED: + /* + * mark service as NEED_FAILD and delete from list + */ + /* FIXME: reporting moved to svc_needs_status.c */ + //svc_report_status(tmp->svc->abs_path, MSG_SVC_NEED_FAIL, NULL); + svc_set_status(tmp->svc, CINIT_ST_NEED_FAILD); + tmp = dep_entry_del(tmp); + break; + + case CINIT_SNS_NEEDS_UNFINISHED: + /* + * FIXME: continue here! + */ + + hack = tmp->svc->needs; + do { + // get needs +// printf("%s waits for %s",tmp->svc->abs_path,hack->svc->abs_path); + // display status of needs + // printf("%s: %ld\n",hack->svc->abs_path,hack->svc->status); + hack = hack->next; + } while(hack != tmp->svc->needs); + + tmp = tmp->next; /* continue with the next item */ + ts.tv_sec = 2; + ts.tv_nsec = 0; + nanosleep(&ts, NULL); + break; + } + /* + * This case happens, if it's the last service waiting for something + */ + /* + * if(tmp == tmp->next) { + * + * nanosleep()? printf("BUUUUUUUUUUUUUG, exit\n"); break; } + */ + } + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_needs_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_needs_status.c new file mode 100644 index 00000000..9b9e0243 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_needs_status.c @@ -0,0 +1,62 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Return status of the needs of this service + * + */ + +#include /* NULL */ +#include "svc.h" /* service information */ +#include "svc-intern.h" /* service information */ + +int svc_needs_status(struct listitem *svc) +{ + int retval = CINIT_SNS_NEEDS_STARTED; + struct dep *deps = svc->needs; + + if(deps == NULL) + return CINIT_SNS_NEEDS_STARTED; /* no needs, everything fine */ + + do { + /* + * worst case: need failed + */ + if((deps->svc->status & CINIT_ST_NEED_FAILD) || + (deps->svc->status & CINIT_ST_ONCE_FAIL) || + (deps->svc->status & CINIT_ST_BAD_ERR)) { + printf("%s not started, because %s failed.\n", svc->abs_path, deps->svc->abs_path); + retval = CINIT_SNS_NEEDS_FAILED; + break; + } + /* + * services are being started + */ + if((deps->svc->status & CINIT_ST_SH_ONCE) || + (deps->svc->status & CINIT_ST_SH_RESPAWN) || + (deps->svc->status & CINIT_ST_ONCE_RUN)) { + // printf("%s (%ld) waits for %s (%ld)\n",svc->abs_path, svc->status, + // deps->svc->abs_path, deps->svc->status); + retval = CINIT_SNS_NEEDS_UNFINISHED; + } + deps = deps->next; + } while(deps != svc->needs); + + return retval; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_report_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_report_status.c new file mode 100644 index 00000000..9a1c1bab --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_report_status.c @@ -0,0 +1,39 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Tell the world what happened to the service + */ + +#include "intern.h" /* mini_printf */ +#include "messages.h" /* MSG_INTRO_SVC */ + +void svc_report_status(char *svc, char *msg, char *err) +{ + mini_printf(MSG_INTRO_SVC, 1); + mini_printf(svc, 1); + mini_printf(": ", 1); + mini_printf(msg, 1); + if(err) { + mini_printf(" (", 1); + mini_printf(err, 1); + mini_printf(")", 1); + } + mini_printf("\n", 1); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_respawn_check.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_respawn_check.c new file mode 100644 index 00000000..86fe71ae --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_respawn_check.c @@ -0,0 +1,40 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * OBSOLETED? not in use. + * + * Check whether service is existent + */ + +#error "NOT IN USE" + +#include /* NULL */ +#include /* PATH_MAX */ +#include "svc.h" + +/* checking for existence is done before! */ +int svc_respawn_check(struct listitem *svc) +{ + char buf[PATH_MAX + 1]; + + strcpy(buf, svc->abs_path); + if(!path_append(buf, C_RESPAWN)) + return 0} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_set_status.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_set_status.c new file mode 100644 index 00000000..647ea20a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_set_status.c @@ -0,0 +1,37 @@ + +/******************************************************************************* + * + * 2005-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Set the status of a service + */ + +#include + +#include "svc-intern.h" + +/* checking for existence is done before! */ +uint32_t svc_set_status(struct listitem *li, uint32_t status) +{ + /* + * FIXME: also set time? + */ + + return (li->status = status); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_should_respawn.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_should_respawn.c new file mode 100644 index 00000000..a217261a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_should_respawn.c @@ -0,0 +1,32 @@ + +/******************************************************************************* + * + * 2006-2008 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Return whether should respawn or not + */ + +#include "svc-intern.h" +#include "svc.h" + +/* checking for existence is done before! */ +int svc_should_respawn(struct listitem *li) +{ + return (li->status & CINIT_ST_SH_RESPAWN); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_start.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_start.c new file mode 100644 index 00000000..6a40b846 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_start.c @@ -0,0 +1,123 @@ +/******************************************************************************* + * + * 2005-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Start a service + */ + +#include /* NULL */ +#include /* fork */ +#include /* strerror */ +#include /* errno */ +#include /* PATH_MAX */ +#include /* nanosleep() */ + +#include "svc.h" /* struct * */ +#include "svc-intern.h" /* struct * */ +#include "messages.h" /* MSG_* */ +#include "intern.h" /* execute_sth */ +#include "cinit.h" /* CINIT_DATA_LEN */ +#include "signals.h" /* signal handling */ + +//void svc_start(struct listitem *li, int strict) +void svc_start(struct listitem *li) +{ + char buf[CINIT_DATA_LEN]; + struct timespec ts; + int delay = 0; /* FIXME: to be calculated by waitpid status, if respawing */ + + /* first update status before forking ! */ + if(li->status & CINIT_ST_SH_ONCE) li->status = CINIT_ST_ONCE_RUN; + else li->status = CINIT_ST_RESPAWNING; + + /* set start time */ + li->start = time(NULL); + + /* + * FIXME: All cleanup must go here close(fds); reset signals reset env? + * FIXME: Add logging possibility to here open (0,1,2) to other processes, + * if specified + */ + + /* + * BUG: the following child may return _before_ the fork returns in the + * parent. Thus this pid may not be registered. And that's the reason why + * we need the global svc_lock! + */ + li->pid = fork(); + + /********************** parent ************************/ + if(li->pid > 0) { + printf("%s is at %d\n", li->abs_path, li->pid); + return; + } + + /********************** Error ************************/ + if(li->pid < 0) { + svc_report_status(li->abs_path, MSG_SVC_FORK, strerror(errno)); + svc_set_status(li, CINIT_ST_BAD_ERR); + return; + } + + /********************** Client / fork() ************************/ + /* + * sleep, if necesseray + */ + if(delay) { + ts.tv_sec = delay; + ts.tv_nsec = 0; + + /* + * FIXME: also report value; int2char + */ + printf("Delay: %d\n", delay); + svc_report_status(li->abs_path, MSG_SVC_SLEEP, NULL); + + /* + * do not need to check for errors, because we can continue anyway + */ + /* + * WRONG: FIXME: look whether to sleep again + */ + nanosleep(&ts, NULL); + } + svc_report_status(li->abs_path, MSG_SVC_START, NULL); + + cinit_cp_data(buf, li->abs_path); + if(!path_append(buf, C_ON)) return; + + /* + * Check for existence + */ + li->status = file_exists(buf); + + if(li->status == FE_NOT) { + svc_report_status(li->abs_path, "Nothing to execute :-)", NULL); + _exit(0); /* nothing there? fine! */ + } + + if(li->status == FE_FILE) { + /* FIXME: I guess this a) does nothing b) should do more than only signals */ + set_signals(SIGSTAGE_CLIENT); + + execute_sth(buf); + } else { /* any kind of error, reported by file_exists already */ + _exit(1); + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_status_changed.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_status_changed.c new file mode 100644 index 00000000..eeff8af7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_status_changed.c @@ -0,0 +1,73 @@ +/******************************************************************************* + * + * 2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Handle changed services + * + */ + +#include /* Macros for waitpid */ +#include /* NULL */ +//#include /* gettimeofday() */ /* FIXME: CHECK POSIX */ +#include /* time() */ + +#include "svc-intern.h" /* listem */ +#include "svc.h" /* service status */ +#include "intern.h" /* mini_printf */ +//#include "messages.h" /* messages/D_PRINTF */ + + +/*********************************************************************** + * register changes from our children + */ +int svc_status_changed() +{ + int success; + int tmp = 0; + struct listitem *svc; + pid_t pid; + + while((pid = waitpid(-1, &tmp, WNOHANG)) > 0) { + svc = list_search_pid(pid); + + if(!svc) continue; /* ignore stuff from our lazy children */ + + success = (WIFEXITED(svc->waitpid) && !WEXITSTATUS(svc->waitpid)) ? 1 : 0; + svc->exited = time(NULL); + + /************************************************************************ + * Update status using a "status translation table" + */ + + /* once running service exited */ + if(svc->status & CINIT_ST_ONCE_RUN) { + if(success) { + svc->status = CINIT_ST_ONCE_OK; + } else { + svc->status = CINIT_ST_ONCE_FAIL; + } + } + /* respawing service died */ + else if(svc->status & CINIT_ST_RESPAWNING) { + svc->status = CINIT_ST_SH_RESPAWN; + } + } + + return tmp; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_stop_deps.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_stop_deps.c new file mode 100644 index 00000000..02d6d6ed --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_stop_deps.c @@ -0,0 +1,66 @@ +/******************************************************************************* + * + * 2007-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + FIXME: not needed anymore! -> change to svc_status_changed() + * Stop a service, taking care about its dependencies + */ + +#include "svc.h" /* enums */ +#include "svc-intern.h" /* struct listitem */ + +/* + * how == CINIT_SSSO_COMPLETE => stop needs/wants before + * how & CINIT_SSSO_WO_NEEDS => omit needs + * how & CINIT_SSSO_WO_WANTS => omit wants + */ + +void svc_stop_deps(struct listitem *li, int how) +{ + struct dep *tmp; + + /* + * don't continue if already being stopped + */ + if(li->status & CINIT_ST_SH_STOP) return; + + /* + * shutdown depending services first: needed_by + */ + tmp = li->needed_by; + do { + if(how & CINIT_SSSO_WO_NEEDS) + break; + svc_stop_deps(tmp->svc, how); + tmp = tmp->next; + } while(tmp != li->needed_by); + + /* + * shutdown depending services first: wanted_by + */ + tmp = li->wanted_by; + do { + if(how & CINIT_SSSO_WO_WANTS) + break; + svc_stop_deps(tmp->svc, how); + tmp = tmp->next; + } while(tmp != li->wanted_by); + + svc_disable(li); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_success.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_success.c new file mode 100644 index 00000000..cef5b280 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_success.c @@ -0,0 +1,39 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Set the status of a service + */ + +#include /* NULL */ + +#include "svc.h" /* listitem, svc_report_status */ +#include "svc-intern.h" /* listitem, svc_report_status */ +#include "messages.h" /* messages */ + +void svc_success(struct listitem *li) +{ + if(li->status & CINIT_ST_ONCE_RUN) { + svc_report_status(li->abs_path, MSG_SVC_OK_ONCE, NULL); + li->status = CINIT_ST_ONCE_OK; + } else { + svc_report_status(li->abs_path, MSG_SVC_OK_RESPAWN, NULL); + li->status = CINIT_ST_RESPAWNING; + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_tree_exec.c b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_tree_exec.c new file mode 100644 index 00000000..e818ce79 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/svc/svc_tree_exec.c @@ -0,0 +1,115 @@ +/******************************************************************************* + * + * 2006-2009 Nico Schottelius (nico-cinit at schottelius.org) + * + * This file is part of cinit. + + * cinit is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * cinit is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with cinit. If not, see . + + * + * Start the service tree we created + */ + +#include /* NULL */ + +#include /* NULL */ +#include "intern.h" /* mini_printf */ +#include "messages.h" /* messages */ +#include "svc.h" /* svc_init */ +#include "svc-intern.h" /* svc_init */ + +/* some thoughts... + * + * - we already generated the tree, now we need to start it from + * the endings + * + * - after starting the first service we have to care about SIG_CHILD + * to record changes + * + * - we execute all services in parallel without problems, because of + * SIG_CHILD notification + * + * - After successfully starting the service we start the services that + * need or want that service + */ +int svc_tree_exec(struct dep *start) +{ + struct dep *tmp = start; + struct dep *hack; + struct timespec ts; + + mini_printf(MSG_TREE_EXEC, 1); + + /* + * the main starting loop: All services in this list should be started, but + * it is possible that dependent services are in the list. In this case + * simply skip the current service + */ + do { + switch (svc_needs_status(tmp->svc)) { + case CINIT_SNS_NEEDS_STARTED: + /* + * FIXME: MSG_* + */ + svc_report_status(tmp->svc->abs_path, "Finished needs.", NULL); + + /* execute service, add dependencies, remove from list */ + svc_start(tmp->svc); + if(!dep_needs_wants_add(&tmp, tmp->svc, DEP_NEEDS)) return 0; + if(!dep_needs_wants_add(&tmp, tmp->svc, DEP_WANTS)) return 0; + tmp = dep_entry_del(tmp); + break; + + case CINIT_SNS_NEEDS_FAILED: + /* + * mark service as NEED_FAILD and delete from list + */ + /* FIXME: reporting moved to svc_needs_status.c */ + //svc_report_status(tmp->svc->abs_path, MSG_SVC_NEED_FAIL, NULL); + svc_set_status(tmp->svc, CINIT_ST_NEED_FAILD); + tmp = dep_entry_del(tmp); + break; + + case CINIT_SNS_NEEDS_UNFINISHED: + /* + * FIXME: continue here! + */ + + hack = tmp->svc->needs; + do { + // get needs +// printf("%s waits for %s",tmp->svc->abs_path,hack->svc->abs_path); + // display status of needs + // printf("%s: %ld\n",hack->svc->abs_path,hack->svc->status); + hack = hack->next; + } while(hack != tmp->svc->needs); + + tmp = tmp->next; /* continue with the next item */ + ts.tv_sec = 2; + ts.tv_nsec = 0; + nanosleep(&ts, NULL); + break; + } + /* + * This case happens, if it's the last service waiting for something + */ + /* + * if(tmp == tmp->next) { + * + * nanosleep()? printf("BUUUUUUUUUUUUUG, exit\n"); break; } + */ + } while(tmp != NULL); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/data1.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/data1.c new file mode 100644 index 00000000..5be9b26a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/data1.c @@ -0,0 +1,53 @@ +#include +#include +#include + +int main() +{ + int a, b, e; + char *c = "/etc/cinit/svc/...", *data; + + int a2, b2; + char *c2; + + a2 = b2 = 0; + + a = 1001; + b = strlen(c); + c2 = malloc(b + 1); + if(!c2) + return 40; + + e = sizeof(a) + sizeof(b) + b; + + printf("e=%d (b=%d)\n", e, b); + + data = malloc(e); + if(!data) + return 20; + + /* + * in + */ + strcpy(data, (char *) &a); + e = sizeof(a); + strcpy(&data[e], (char *) &b); + e += sizeof(b); + strcpy(&data[e], c); + + /* + * out + */ + strncpy((char *) &a2, data, sizeof(a2)); + printf("a2=%d\n", a2); + e = sizeof(a2); + + strncpy((char *) &b2, &data[e], sizeof(b2)); + printf("b2=%d\n", b2); + e += sizeof(b2); + + strncpy(c2, &data[e], b2); + printf("c2=%s\n", c2); + + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c new file mode 100644 index 00000000..77cc731a --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c @@ -0,0 +1,147 @@ +/************* + * + * A very small program to show that the child() of a fork() + * proceess can / CANNOT exit before fork() returns in the parent + * + * Nico Schottelius, Copying: GPLv3, 20070925 + * + * I run it this way: + + * % ./fork-latency | grep "Unknown child exited" | sort | uniq | wc -l + * => Number of children that exited before we recorded them! (should be 0) + * + * % ./fork-latency | grep "found" | sort | uniq | wc -l + * => children, which exited after fork() returned. + * + * % ./fork-latency | grep "found" | wc -l + * => should equal MAX (see sourcecode) + * + * % ./fork-latency | wc -l + * => should also equal MAX (see sourcecode) + * + * Some interesting facts: + * + * - With MAX=5000 I get: + * + * [20:02] ikn:test% ./fork-latency | grep "found" | wc -l + * 731705 + * [20:03] ikn:test% ./fork-latency | wc -l + * 734683 + * + * [20:04] ikn:test% ./fork-latency | sort | head -n 4 + * 1339) found + * 1339) found + * 1339) found + * 1339) found + * + * + * I'm wondering, why even with WNOHANG I get to check pids twice, + * also because I'm clearing the pid, after I found it (list[o] = 0). + * + +This code is weired (using return intead of exit, see below): + +[20:38] ikn:test% ./fork-latency > D +[20:38] ikn:test% cat D +MAX=2 +MAX=2 +[1] Forked 12264 +MAX=2 +[1] Forked 12264 +[0] Forked 12265 +(12264) found +(12265) found +[20:38] ikn:test% + + +With _exit: + +[21:17] ikn:test% ./fork-latency > E +[21:17] ikn:test% cat E +MAX=2 +[1] Forked 15388 +[0] Forked 15389 +(15388) found +(15389) found + + + */ + +#include /* fork() */ +#include /* sigaction, sigemtpyset */ +#include /* waitpid */ +#include /* printf, NULL */ + +#define MAX 20000 /* number of forks */ + +pid_t list[MAX]; +int i; +int got_sig; + +void sig_child(int sig) +{ + got_sig = 1; +} + +void reap_child() +{ + int o; + int found; + int status; + pid_t pid; + + got_sig = 0; + + /* WNOHANG is evil: it makes us call the loop MORE THAN ONCE + * PER DEAD CHILD! -> registering a dead child via signal + * handler makes WNOHANG obsolete + */ + //while((pid = waitpid(-1, &status, WNOHANG)) > 0) { + while((pid = waitpid(-1, &status, 0)) > 0) { + found = 0; + // no need to search the whole list, use o = i instead + // for(o = 0; o < MAX; o++) { + for(o = i; o < MAX; o++) { + if(list[o] == pid) { + list[o] = 0; /* empty */ + found = 1; + break; + } + } + if(found) { + printf("(%d) found\n", pid); + } else { + printf("(%d) Unknown child exited\n", pid); + } + } +} + +int main() +{ + struct sigaction sa; + + /* listen to SIGCHLD */ + sigemptyset(&sa.sa_mask); + sa.sa_flags = 0; + sa.sa_handler = sig_child; + sa.sa_flags = SA_NOCLDSTOP; + sigaction(SIGCHLD, &sa, NULL); + + i = MAX; + + printf("MAX=%d\n", i); + + for(i = MAX - 1; i >= 0; i--) { + list[i] = fork(); + /* child exists immediately */ + if(list[i] == 0) _exit(0); + + /* this causes a different behaviour */ + /* if(list[i] == 0) return 0; */ + + printf("[%d] Forked %d\n", i, list[i]); + + /* parent code */ + if(got_sig) reap_child(); + } +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.A b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.A new file mode 100644 index 00000000..bd0df9f7 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.A @@ -0,0 +1,8 @@ +Forking 1 +Forking 1 +(11456) found +Forking 0 +Forking 1 +(11456) found +Forking 0 +(11457) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.B b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.B new file mode 100644 index 00000000..95f042c1 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.B @@ -0,0 +1,7 @@ +Forking 1 (0) +Forking 1 (11799) +Forking 0 (0) +Forking 1 (11799) +Forking 0 (11800) +(11799) found +(11800) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.C b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.C new file mode 100644 index 00000000..9c1b6922 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.C @@ -0,0 +1,5 @@ +[1] Forked 11905 +[1] Forked 11905 +[0] Forked 11906 +(11905) found +(11906) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.D b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.D new file mode 100644 index 00000000..4adfec55 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.D @@ -0,0 +1,8 @@ +MAX=2 +MAX=2 +[1] Forked 12264 +MAX=2 +[1] Forked 12264 +[0] Forked 12265 +(12264) found +(12265) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.E b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.E new file mode 100644 index 00000000..4a4190a6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.E @@ -0,0 +1,5 @@ +MAX=2 +[1] Forked 15388 +[0] Forked 15389 +(15388) found +(15389) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.F b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.F new file mode 100644 index 00000000..a7ebfe81 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.F @@ -0,0 +1,40001 @@ +MAX=20000 +[19999] Forked 17761 +[19998] Forked 17762 +(17761) found +(17762) found +[19997] Forked 17763 +[19996] Forked 17764 +(17763) found +(17764) found +[19995] Forked 17765 +(17765) found +[19994] Forked 17766 +(17766) found +[19993] Forked 17767 +(17767) found +[19992] Forked 17768 +(17768) found +[19991] Forked 17769 +(17769) found +[19990] Forked 17770 +(17770) found +[19989] Forked 17771 +(17771) found +[19988] Forked 17772 +(17772) found +[19987] Forked 17773 +(17773) found +[19986] Forked 17774 +(17774) found +[19985] Forked 17775 +(17775) found +[19984] Forked 17776 +(17776) found +[19983] Forked 17777 +(17777) found +[19982] Forked 17778 +(17778) found +[19981] Forked 17779 +(17779) found +[19980] Forked 17780 +(17780) found +[19979] Forked 17781 +(17781) found +[19978] Forked 17782 +(17782) found +[19977] Forked 17783 +(17783) found +[19976] Forked 17784 +(17784) found +[19975] Forked 17785 +(17785) found +[19974] Forked 17786 +(17786) found +[19973] Forked 17787 +(17787) found +[19972] Forked 17788 +(17788) found +[19971] Forked 17789 +(17789) found +[19970] Forked 17790 +(17790) found +[19969] Forked 17791 +(17791) found +[19968] Forked 17792 +(17792) found +[19967] Forked 17793 +[19966] Forked 17794 +(17793) found +(17794) found +[19965] Forked 17795 +[19964] Forked 17796 +(17795) found +(17796) found +[19963] Forked 17797 +[19962] Forked 17798 +(17797) found +(17798) found +[19961] Forked 17799 +[19960] Forked 17800 +(17799) found +(17800) found +[19959] Forked 17801 +[19958] Forked 17802 +(17801) found +(17802) found +[19957] Forked 17803 +[19956] Forked 17804 +(17803) found +(17804) found +[19955] Forked 17805 +[19954] Forked 17806 +(17805) found +(17806) found +[19953] Forked 17807 +[19952] Forked 17808 +(17807) found +(17808) found +[19951] Forked 17809 +[19950] Forked 17810 +(17809) found +(17810) found +[19949] Forked 17811 +[19948] Forked 17812 +(17811) found +(17812) found +[19947] Forked 17813 +[19946] Forked 17814 +(17813) found +(17814) found +[19945] Forked 17815 +[19944] Forked 17816 +(17815) found +(17816) found +[19943] Forked 17817 +[19942] Forked 17818 +(17817) found +(17818) found +[19941] Forked 17819 +[19940] Forked 17820 +(17819) found +(17820) found +[19939] Forked 17821 +[19938] Forked 17822 +(17821) found +(17822) found +[19937] Forked 17823 +[19936] Forked 17824 +(17823) found +(17824) found +[19935] Forked 17825 +[19934] Forked 17826 +(17825) found +(17826) found +[19933] Forked 17827 +[19932] Forked 17828 +(17827) found +(17828) found +[19931] Forked 17829 +[19930] Forked 17830 +(17829) found +(17830) found +[19929] Forked 17831 +[19928] Forked 17832 +(17831) found +(17832) found +[19927] Forked 17833 +[19926] Forked 17834 +(17833) found +(17834) found +[19925] Forked 17835 +[19924] Forked 17836 +(17835) found +(17836) found +[19923] Forked 17837 +[19922] Forked 17838 +(17837) found +(17838) found +[19921] Forked 17839 +[19920] Forked 17840 +(17839) found +(17840) found +[19919] Forked 17841 +[19918] Forked 17842 +(17841) found +(17842) found +[19917] Forked 17843 +[19916] Forked 17844 +(17843) found +(17844) found +[19915] Forked 17845 +[19914] Forked 17846 +(17845) found +(17846) found +[19913] Forked 17847 +[19912] Forked 17848 +(17847) found +(17848) found +[19911] Forked 17849 +[19910] Forked 17850 +(17849) found +(17850) found +[19909] Forked 17851 +[19908] Forked 17852 +(17851) found +(17852) found +[19907] Forked 17853 +[19906] Forked 17854 +(17853) found +(17854) found +[19905] Forked 17855 +[19904] Forked 17856 +(17855) found +(17856) found +[19903] Forked 17857 +[19902] Forked 17858 +(17857) found +(17858) found +[19901] Forked 17859 +[19900] Forked 17860 +(17859) found +(17860) found +[19899] Forked 17861 +[19898] Forked 17862 +(17861) found +(17862) found +[19897] Forked 17863 +[19896] Forked 17864 +(17863) found +(17864) found +[19895] Forked 17865 +[19894] Forked 17866 +(17865) found +(17866) found +[19893] Forked 17867 +[19892] Forked 17868 +(17867) found +(17868) found +[19891] Forked 17869 +[19890] Forked 17870 +(17869) found +(17870) found +[19889] Forked 17871 +[19888] Forked 17872 +(17871) found +(17872) found +[19887] Forked 17873 +[19886] Forked 17874 +(17873) found +(17874) found +[19885] Forked 17875 +[19884] Forked 17876 +(17875) found +(17876) found +[19883] Forked 17877 +[19882] Forked 17878 +(17877) found +(17878) found +[19881] Forked 17879 +[19880] Forked 17880 +(17879) found +(17880) found +[19879] Forked 17881 +[19878] Forked 17882 +(17881) found +(17882) found +[19877] Forked 17883 +[19876] Forked 17884 +(17883) found +(17884) found +[19875] Forked 17885 +[19874] Forked 17886 +(17885) found +(17886) found +[19873] Forked 17887 +[19872] Forked 17888 +(17887) found +(17888) found +[19871] Forked 17889 +[19870] Forked 17890 +(17889) found +(17890) found +[19869] Forked 17891 +[19868] Forked 17892 +(17891) found +(17892) found +[19867] Forked 17893 +[19866] Forked 17894 +(17893) found +(17894) found +[19865] Forked 17895 +[19864] Forked 17896 +(17895) found +(17896) found +[19863] Forked 17897 +[19862] Forked 17898 +(17897) found +(17898) found +[19861] Forked 17899 +[19860] Forked 17900 +(17899) found +(17900) found +[19859] Forked 17901 +[19858] Forked 17902 +(17901) found +(17902) found +[19857] Forked 17903 +[19856] Forked 17904 +(17903) found +(17904) found +[19855] Forked 17905 +[19854] Forked 17906 +(17905) found +(17906) found +[19853] Forked 17907 +[19852] Forked 17908 +(17907) found +(17908) found +[19851] Forked 17909 +[19850] Forked 17910 +(17909) found +(17910) found +[19849] Forked 17911 +[19848] Forked 17912 +(17911) found +(17912) found +[19847] Forked 17913 +[19846] Forked 17914 +(17913) found +(17914) found +[19845] Forked 17915 +[19844] Forked 17916 +(17915) found +(17916) found +[19843] Forked 17917 +[19842] Forked 17918 +(17917) found +(17918) found +[19841] Forked 17919 +[19840] Forked 17920 +(17919) found +(17920) found +[19839] Forked 17921 +[19838] Forked 17922 +(17921) found +(17922) found +[19837] Forked 17923 +[19836] Forked 17924 +(17923) found +(17924) found +[19835] Forked 17925 +(17925) found +[19834] Forked 17926 +(17926) found +[19833] Forked 17927 +(17927) found +[19832] Forked 17928 +(17928) found +[19831] Forked 17929 +(17929) found +[19830] Forked 17930 +(17930) found +[19829] Forked 17931 +(17931) found +[19828] Forked 17932 +[19827] Forked 17933 +(17932) found +(17933) found +[19826] Forked 17934 +(17934) found +[19825] Forked 17935 +(17935) found +[19824] Forked 17936 +(17936) found +[19823] Forked 17937 +(17937) found +[19822] Forked 17938 +(17938) found +[19821] Forked 17939 +(17939) found +[19820] Forked 17940 +(17940) found +[19819] Forked 17941 +(17941) found +[19818] Forked 17942 +(17942) found +[19817] Forked 17943 +(17943) found +[19816] Forked 17944 +(17944) found +[19815] Forked 17945 +(17945) found +[19814] Forked 17946 +(17946) found +[19813] Forked 17947 +(17947) found +[19812] Forked 17948 +(17948) found +[19811] Forked 17949 +(17949) found +[19810] Forked 17950 +(17950) found +[19809] Forked 17951 +(17951) found +[19808] Forked 17952 +(17952) found +[19807] Forked 17953 +(17953) found +[19806] Forked 17954 +(17954) found +[19805] Forked 17955 +(17955) found +[19804] Forked 17956 +(17956) found +[19803] Forked 17957 +(17957) found +[19802] Forked 17958 +(17958) found +[19801] Forked 17959 +(17959) found +[19800] Forked 17960 +(17960) found +[19799] Forked 17961 +(17961) found +[19798] Forked 17962 +(17962) found +[19797] Forked 17963 +(17963) found +[19796] Forked 17964 +(17964) found +[19795] Forked 17965 +(17965) found +[19794] Forked 17966 +(17966) found +[19793] Forked 17967 +(17967) found +[19792] Forked 17968 +(17968) found +[19791] Forked 17969 +(17969) found +[19790] Forked 17970 +[19789] Forked 17971 +(17970) found +(17971) found +[19788] Forked 17972 +[19787] Forked 17973 +(17972) found +(17973) found +[19786] Forked 17974 +[19785] Forked 17975 +(17974) found +(17975) found +[19784] Forked 17976 +[19783] Forked 17977 +(17976) found +(17977) found +[19782] Forked 17978 +[19781] Forked 17979 +(17978) found +(17979) found +[19780] Forked 17980 +[19779] Forked 17981 +(17981) found +(17980) found +[19778] Forked 17982 +(17982) found +[19777] Forked 17983 +(17983) found +[19776] Forked 17984 +(17984) found +[19775] Forked 17985 +(17985) found +[19774] Forked 17986 +(17986) found +[19773] Forked 17987 +(17987) found +[19772] Forked 17988 +(17988) found +[19771] Forked 17989 +(17989) found +[19770] Forked 17990 +(17990) found +[19769] Forked 17991 +(17991) found +[19768] Forked 17992 +(17992) found +[19767] Forked 17993 +(17993) found +[19766] Forked 17994 +(17994) found +[19765] Forked 17995 +(17995) found +[19764] Forked 17996 +(17996) found +[19763] Forked 17997 +(17997) found +[19762] Forked 17998 +(17998) found +[19761] Forked 17999 +(17999) found +[19760] Forked 18000 +(18000) found +[19759] Forked 18001 +(18001) found +[19758] Forked 18002 +(18002) found +[19757] Forked 18003 +(18003) found +[19756] Forked 18004 +(18004) found +[19755] Forked 18005 +(18005) found +[19754] Forked 18006 +(18006) found +[19753] Forked 18007 +(18007) found +[19752] Forked 18008 +(18008) found +[19751] Forked 18009 +(18009) found +[19750] Forked 18010 +(18010) found +[19749] Forked 18011 +(18011) found +[19748] Forked 18012 +(18012) found +[19747] Forked 18013 +(18013) found +[19746] Forked 18014 +(18014) found +[19745] Forked 18015 +(18015) found +[19744] Forked 18016 +(18016) found +[19743] Forked 18017 +(18017) found +[19742] Forked 18018 +(18018) found +[19741] Forked 18019 +(18019) found +[19740] Forked 18020 +(18020) found +[19739] Forked 18021 +(18021) found +[19738] Forked 18022 +(18022) found +[19737] Forked 18023 +(18023) found +[19736] Forked 18024 +(18024) found +[19735] Forked 18025 +(18025) found +[19734] Forked 18026 +(18026) found +[19733] Forked 18027 +(18027) found +[19732] Forked 18028 +(18028) found +[19731] Forked 18029 +(18029) found +[19730] Forked 18030 +(18030) found +[19729] Forked 18031 +(18031) found +[19728] Forked 18032 +(18032) found +[19727] Forked 18033 +(18033) found +[19726] Forked 18034 +(18034) found +[19725] Forked 18035 +(18035) found +[19724] Forked 18036 +(18036) found +[19723] Forked 18037 +(18037) found +[19722] Forked 18038 +(18038) found +[19721] Forked 18039 +(18039) found +[19720] Forked 18040 +(18040) found +[19719] Forked 18041 +(18041) found +[19718] Forked 18042 +[19717] Forked 18043 +(18042) found +(18043) found +[19716] Forked 18044 +[19715] Forked 18045 +(18044) found +(18045) found +[19714] Forked 18046 +[19713] Forked 18047 +(18046) found +(18047) found +[19712] Forked 18048 +[19711] Forked 18049 +(18049) found +(18048) found +[19710] Forked 18050 +(18050) found +[19709] Forked 18051 +(18051) found +[19708] Forked 18052 +(18052) found +[19707] Forked 18053 +(18053) found +[19706] Forked 18055 +(18055) found +[19705] Forked 18056 +(18056) found +[19704] Forked 18057 +(18057) found +[19703] Forked 18058 +(18058) found +[19702] Forked 18059 +(18059) found +[19701] Forked 18060 +(18060) found +[19700] Forked 18061 +(18061) found +[19699] Forked 18062 +(18062) found +[19698] Forked 18063 +(18063) found +[19697] Forked 18064 +(18064) found +[19696] Forked 18065 +(18065) found +[19695] Forked 18066 +(18066) found +[19694] Forked 18067 +(18067) found +[19693] Forked 18068 +(18068) found +[19692] Forked 18069 +(18069) found +[19691] Forked 18070 +(18070) found +[19690] Forked 18071 +(18071) found +[19689] Forked 18072 +(18072) found +[19688] Forked 18073 +(18073) found +[19687] Forked 18074 +(18074) found +[19686] Forked 18075 +(18075) found +[19685] Forked 18076 +(18076) found +[19684] Forked 18077 +(18077) found +[19683] Forked 18078 +(18078) found +[19682] Forked 18079 +(18079) found +[19681] Forked 18080 +(18080) found +[19680] Forked 18081 +(18081) found +[19679] Forked 18082 +(18082) found +[19678] Forked 18083 +(18083) found +[19677] Forked 18084 +(18084) found +[19676] Forked 18085 +(18085) found +[19675] Forked 18086 +(18086) found +[19674] Forked 18087 +(18087) found +[19673] Forked 18088 +(18088) found +[19672] Forked 18089 +(18089) found +[19671] Forked 18090 +(18090) found +[19670] Forked 18091 +(18091) found +[19669] Forked 18092 +(18092) found +[19668] Forked 18093 +(18093) found +[19667] Forked 18094 +(18094) found +[19666] Forked 18095 +(18095) found +[19665] Forked 18096 +(18096) found +[19664] Forked 18097 +(18097) found +[19663] Forked 18098 +(18098) found +[19662] Forked 18099 +(18099) found +[19661] Forked 18100 +(18100) found +[19660] Forked 18101 +(18101) found +[19659] Forked 18102 +(18102) found +[19658] Forked 18103 +(18103) found +[19657] Forked 18104 +(18104) found +[19656] Forked 18105 +(18105) found +[19655] Forked 18106 +(18106) found +[19654] Forked 18107 +(18107) found +[19653] Forked 18108 +(18108) found +[19652] Forked 18109 +(18109) found +[19651] Forked 18110 +(18110) found +[19650] Forked 18111 +(18111) found +[19649] Forked 18112 +(18112) found +[19648] Forked 18113 +[19647] Forked 18114 +(18113) found +(18114) found +[19646] Forked 18115 +[19645] Forked 18116 +(18115) found +(18116) found +[19644] Forked 18117 +[19643] Forked 18118 +(18117) found +(18118) found +[19642] Forked 18119 +[19641] Forked 18120 +(18119) found +(18120) found +[19640] Forked 18121 +[19639] Forked 18122 +(18121) found +(18122) found +[19638] Forked 18123 +[19637] Forked 18124 +(18123) found +(18124) found +[19636] Forked 18125 +[19635] Forked 18126 +(18125) found +(18126) found +[19634] Forked 18127 +[19633] Forked 18128 +(18127) found +(18128) found +[19632] Forked 18129 +[19631] Forked 18130 +(18129) found +(18130) found +[19630] Forked 18131 +[19629] Forked 18132 +(18131) found +(18132) found +[19628] Forked 18133 +[19627] Forked 18134 +(18133) found +(18134) found +[19626] Forked 18135 +[19625] Forked 18136 +(18135) found +(18136) found +[19624] Forked 18137 +[19623] Forked 18138 +(18137) found +(18138) found +[19622] Forked 18139 +[19621] Forked 18140 +(18139) found +(18140) found +[19620] Forked 18141 +[19619] Forked 18142 +(18141) found +(18142) found +[19618] Forked 18143 +[19617] Forked 18144 +(18143) found +(18144) found +[19616] Forked 18145 +[19615] Forked 18146 +(18145) found +(18146) found +[19614] Forked 18147 +[19613] Forked 18148 +(18147) found +(18148) found +[19612] Forked 18149 +[19611] Forked 18150 +(18149) found +(18150) found +[19610] Forked 18151 +[19609] Forked 18152 +(18151) found +(18152) found +[19608] Forked 18153 +[19607] Forked 18154 +(18153) found +(18154) found +[19606] Forked 18155 +[19605] Forked 18156 +(18155) found +(18156) found +[19604] Forked 18157 +[19603] Forked 18158 +(18157) found +(18158) found +[19602] Forked 18159 +[19601] Forked 18160 +(18159) found +(18160) found +[19600] Forked 18161 +(18161) found +[19599] Forked 18162 +(18162) found +[19598] Forked 18163 +(18163) found +[19597] Forked 18164 +(18164) found +[19596] Forked 18165 +(18165) found +[19595] Forked 18166 +(18166) found +[19594] Forked 18167 +(18167) found +[19593] Forked 18168 +(18168) found +[19592] Forked 18169 +(18169) found +[19591] Forked 18170 +(18170) found +[19590] Forked 18171 +(18171) found +[19589] Forked 18172 +(18172) found +[19588] Forked 18173 +(18173) found +[19587] Forked 18174 +(18174) found +[19586] Forked 18175 +(18175) found +[19585] Forked 18176 +(18176) found +[19584] Forked 18177 +(18177) found +[19583] Forked 18178 +(18178) found +[19582] Forked 18179 +(18179) found +[19581] Forked 18180 +(18180) found +[19580] Forked 18181 +(18181) found +[19579] Forked 18182 +(18182) found +[19578] Forked 18183 +(18183) found +[19577] Forked 18184 +(18184) found +[19576] Forked 18185 +(18185) found +[19575] Forked 18186 +(18186) found +[19574] Forked 18187 +(18187) found +[19573] Forked 18188 +(18188) found +[19572] Forked 18189 +(18189) found +[19571] Forked 18190 +(18190) found +[19570] Forked 18191 +(18191) found +[19569] Forked 18192 +(18192) found +[19568] Forked 18193 +(18193) found +[19567] Forked 18194 +(18194) found +[19566] Forked 18195 +(18195) found +[19565] Forked 18196 +(18196) found +[19564] Forked 18197 +[19563] Forked 18198 +(18197) found +(18198) found +[19562] Forked 18199 +[19561] Forked 18200 +(18199) found +(18200) found +[19560] Forked 18201 +[19559] Forked 18202 +(18201) found +(18202) found +[19558] Forked 18203 +[19557] Forked 18204 +(18203) found +(18204) found +[19556] Forked 18205 +[19555] Forked 18206 +(18205) found +(18206) found +[19554] Forked 18207 +[19553] Forked 18208 +(18207) found +(18208) found +[19552] Forked 18209 +[19551] Forked 18210 +(18209) found +(18210) found +[19550] Forked 18211 +[19549] Forked 18212 +(18211) found +(18212) found +[19548] Forked 18213 +[19547] Forked 18214 +(18213) found +(18214) found +[19546] Forked 18215 +[19545] Forked 18216 +(18215) found +(18216) found +[19544] Forked 18217 +[19543] Forked 18218 +(18217) found +(18218) found +[19542] Forked 18219 +[19541] Forked 18220 +(18219) found +(18220) found +[19540] Forked 18221 +[19539] Forked 18222 +(18221) found +(18222) found +[19538] Forked 18223 +[19537] Forked 18224 +(18223) found +(18224) found +[19536] Forked 18225 +[19535] Forked 18226 +(18225) found +(18226) found +[19534] Forked 18227 +[19533] Forked 18228 +(18227) found +(18228) found +[19532] Forked 18229 +[19531] Forked 18230 +(18229) found +(18230) found +[19530] Forked 18231 +[19529] Forked 18232 +(18231) found +(18232) found +[19528] Forked 18233 +[19527] Forked 18234 +(18233) found +(18234) found +[19526] Forked 18235 +[19525] Forked 18236 +(18235) found +(18236) found +[19524] Forked 18237 +[19523] Forked 18238 +(18237) found +(18238) found +[19522] Forked 18239 +[19521] Forked 18240 +(18239) found +(18240) found +[19520] Forked 18241 +[19519] Forked 18242 +(18241) found +(18242) found +[19518] Forked 18243 +[19517] Forked 18244 +(18243) found +(18244) found +[19516] Forked 18245 +[19515] Forked 18246 +(18245) found +(18246) found +[19514] Forked 18247 +[19513] Forked 18248 +(18247) found +(18248) found +[19512] Forked 18249 +[19511] Forked 18250 +(18249) found +(18250) found +[19510] Forked 18251 +[19509] Forked 18252 +(18251) found +(18252) found +[19508] Forked 18253 +[19507] Forked 18254 +(18253) found +(18254) found +[19506] Forked 18255 +[19505] Forked 18256 +(18255) found +(18256) found +[19504] Forked 18257 +[19503] Forked 18258 +(18257) found +(18258) found +[19502] Forked 18259 +[19501] Forked 18260 +(18259) found +(18260) found +[19500] Forked 18261 +[19499] Forked 18262 +(18261) found +(18262) found +[19498] Forked 18263 +[19497] Forked 18264 +(18263) found +(18264) found +[19496] Forked 18265 +[19495] Forked 18266 +(18265) found +(18266) found +[19494] Forked 18267 +[19493] Forked 18268 +(18267) found +(18268) found +[19492] Forked 18269 +[19491] Forked 18270 +(18269) found +(18270) found +[19490] Forked 18271 +[19489] Forked 18272 +(18271) found +(18272) found +[19488] Forked 18273 +[19487] Forked 18274 +(18273) found +(18274) found +[19486] Forked 18275 +[19485] Forked 18276 +(18275) found +(18276) found +[19484] Forked 18277 +[19483] Forked 18278 +(18277) found +(18278) found +[19482] Forked 18279 +[19481] Forked 18280 +(18279) found +(18280) found +[19480] Forked 18281 +[19479] Forked 18282 +(18281) found +(18282) found +[19478] Forked 18283 +[19477] Forked 18284 +(18283) found +(18284) found +[19476] Forked 18285 +[19475] Forked 18286 +(18285) found +(18286) found +[19474] Forked 18287 +[19473] Forked 18288 +(18287) found +(18288) found +[19472] Forked 18289 +[19471] Forked 18290 +(18289) found +(18290) found +[19470] Forked 18291 +[19469] Forked 18292 +(18291) found +(18292) found +[19468] Forked 18293 +[19467] Forked 18294 +(18293) found +(18294) found +[19466] Forked 18295 +[19465] Forked 18296 +(18295) found +(18296) found +[19464] Forked 18297 +[19463] Forked 18298 +(18297) found +(18298) found +[19462] Forked 18299 +[19461] Forked 18300 +(18299) found +(18300) found +[19460] Forked 18301 +[19459] Forked 18302 +(18301) found +(18302) found +[19458] Forked 18303 +[19457] Forked 18304 +(18303) found +(18304) found +[19456] Forked 18305 +[19455] Forked 18306 +(18305) found +(18306) found +[19454] Forked 18307 +[19453] Forked 18308 +(18307) found +(18308) found +[19452] Forked 18309 +[19451] Forked 18310 +(18309) found +(18310) found +[19450] Forked 18311 +[19449] Forked 18312 +(18311) found +(18312) found +[19448] Forked 18313 +[19447] Forked 18314 +(18313) found +(18314) found +[19446] Forked 18315 +[19445] Forked 18316 +(18315) found +(18316) found +[19444] Forked 18317 +[19443] Forked 18318 +(18317) found +(18318) found +[19442] Forked 18319 +[19441] Forked 18320 +(18319) found +(18320) found +[19440] Forked 18321 +[19439] Forked 18322 +(18321) found +(18322) found +[19438] Forked 18323 +[19437] Forked 18324 +(18323) found +(18324) found +[19436] Forked 18325 +[19435] Forked 18326 +(18325) found +(18326) found +[19434] Forked 18327 +[19433] Forked 18328 +(18327) found +(18328) found +[19432] Forked 18329 +[19431] Forked 18330 +(18329) found +(18330) found +[19430] Forked 18331 +[19429] Forked 18332 +(18331) found +(18332) found +[19428] Forked 18333 +[19427] Forked 18334 +(18333) found +(18334) found +[19426] Forked 18335 +[19425] Forked 18336 +(18335) found +(18336) found +[19424] Forked 18337 +(18337) found +[19423] Forked 18338 +[19422] Forked 18339 +(18338) found +(18339) found +[19421] Forked 18340 +[19420] Forked 18341 +(18340) found +(18341) found +[19419] Forked 18342 +[19418] Forked 18343 +(18342) found +(18343) found +[19417] Forked 18344 +[19416] Forked 18345 +(18344) found +(18345) found +[19415] Forked 18346 +[19414] Forked 18347 +(18346) found +(18347) found +[19413] Forked 18348 +[19412] Forked 18349 +(18348) found +(18349) found +[19411] Forked 18350 +[19410] Forked 18351 +(18350) found +(18351) found +[19409] Forked 18352 +[19408] Forked 18353 +(18352) found +(18353) found +[19407] Forked 18354 +[19406] Forked 18355 +(18354) found +(18355) found +[19405] Forked 18356 +[19404] Forked 18357 +(18356) found +(18357) found +[19403] Forked 18358 +[19402] Forked 18359 +(18358) found +(18359) found +[19401] Forked 18360 +[19400] Forked 18361 +(18360) found +(18361) found +[19399] Forked 18362 +[19398] Forked 18363 +(18362) found +(18363) found +[19397] Forked 18364 +[19396] Forked 18365 +(18364) found +(18365) found +[19395] Forked 18366 +[19394] Forked 18367 +(18366) found +(18367) found +[19393] Forked 18368 +[19392] Forked 18369 +(18368) found +(18369) found +[19391] Forked 18370 +[19390] Forked 18371 +(18370) found +(18371) found +[19389] Forked 18372 +[19388] Forked 18373 +(18372) found +(18373) found +[19387] Forked 18374 +[19386] Forked 18375 +(18374) found +(18375) found +[19385] Forked 18376 +[19384] Forked 18377 +(18376) found +(18377) found +[19383] Forked 18378 +[19382] Forked 18379 +(18378) found +(18379) found +[19381] Forked 18380 +(18380) found +[19380] Forked 18381 +(18381) found +[19379] Forked 18382 +(18382) found +[19378] Forked 18383 +(18383) found +[19377] Forked 18384 +(18384) found +[19376] Forked 18385 +(18385) found +[19375] Forked 18386 +(18386) found +[19374] Forked 18387 +(18387) found +[19373] Forked 18388 +(18388) found +[19372] Forked 18389 +(18389) found +[19371] Forked 18390 +(18390) found +[19370] Forked 18391 +(18391) found +[19369] Forked 18392 +(18392) found +[19368] Forked 18393 +(18393) found +[19367] Forked 18394 +(18394) found +[19366] Forked 18395 +(18395) found +[19365] Forked 18396 +(18396) found +[19364] Forked 18397 +(18397) found +[19363] Forked 18398 +(18398) found +[19362] Forked 18399 +(18399) found +[19361] Forked 18400 +(18400) found +[19360] Forked 18401 +(18401) found +[19359] Forked 18402 +(18402) found +[19358] Forked 18403 +(18403) found +[19357] Forked 18404 +(18404) found +[19356] Forked 18405 +(18405) found +[19355] Forked 18406 +(18406) found +[19354] Forked 18407 +(18407) found +[19353] Forked 18408 +(18408) found +[19352] Forked 18409 +(18409) found +[19351] Forked 18410 +(18410) found +[19350] Forked 18411 +(18411) found +[19349] Forked 18412 +(18412) found +[19348] Forked 18413 +(18413) found +[19347] Forked 18414 +(18414) found +[19346] Forked 18415 +(18415) found +[19345] Forked 18416 +(18416) found +[19344] Forked 18417 +(18417) found +[19343] Forked 18418 +(18418) found +[19342] Forked 18419 +[19341] Forked 18420 +(18419) found +(18420) found +[19340] Forked 18421 +[19339] Forked 18422 +(18421) found +(18422) found +[19338] Forked 18423 +[19337] Forked 18424 +(18423) found +(18424) found +[19336] Forked 18425 +[19335] Forked 18426 +(18425) found +(18426) found +[19334] Forked 18427 +[19333] Forked 18428 +(18427) found +(18428) found +[19332] Forked 18429 +[19331] Forked 18430 +(18429) found +(18430) found +[19330] Forked 18431 +[19329] Forked 18432 +(18431) found +(18432) found +[19328] Forked 18433 +[19327] Forked 18434 +(18433) found +(18434) found +[19326] Forked 18435 +[19325] Forked 18436 +(18435) found +(18436) found +[19324] Forked 18437 +[19323] Forked 18438 +(18437) found +(18438) found +[19322] Forked 18439 +[19321] Forked 18440 +(18439) found +(18440) found +[19320] Forked 18441 +[19319] Forked 18442 +(18441) found +(18442) found +[19318] Forked 18443 +[19317] Forked 18444 +(18443) found +(18444) found +[19316] Forked 18445 +[19315] Forked 18446 +(18445) found +(18446) found +[19314] Forked 18447 +[19313] Forked 18448 +(18447) found +(18448) found +[19312] Forked 18449 +[19311] Forked 18450 +(18449) found +(18450) found +[19310] Forked 18451 +[19309] Forked 18452 +(18451) found +(18452) found +[19308] Forked 18453 +[19307] Forked 18454 +(18453) found +(18454) found +[19306] Forked 18455 +[19305] Forked 18456 +(18455) found +(18456) found +[19304] Forked 18457 +[19303] Forked 18458 +(18457) found +(18458) found +[19302] Forked 18459 +[19301] Forked 18460 +(18459) found +(18460) found +[19300] Forked 18461 +[19299] Forked 18462 +(18461) found +(18462) found +[19298] Forked 18463 +(18463) found +[19297] Forked 18464 +(18464) found +[19296] Forked 18466 +(18466) found +[19295] Forked 18467 +(18467) found +[19294] Forked 18468 +(18468) found +[19293] Forked 18469 +(18469) found +[19292] Forked 18470 +(18470) found +[19291] Forked 18471 +(18471) found +[19290] Forked 18472 +(18472) found +[19289] Forked 18473 +(18473) found +[19288] Forked 18474 +(18474) found +[19287] Forked 18475 +(18475) found +[19286] Forked 18476 +(18476) found +[19285] Forked 18477 +(18477) found +[19284] Forked 18478 +(18478) found +[19283] Forked 18479 +(18479) found +[19282] Forked 18480 +(18480) found +[19281] Forked 18481 +(18481) found +[19280] Forked 18482 +(18482) found +[19279] Forked 18483 +(18483) found +[19278] Forked 18484 +(18484) found +[19277] Forked 18485 +(18485) found +[19276] Forked 18486 +(18486) found +[19275] Forked 18487 +(18487) found +[19274] Forked 18488 +(18488) found +[19273] Forked 18489 +(18489) found +[19272] Forked 18490 +(18490) found +[19271] Forked 18491 +(18491) found +[19270] Forked 18492 +(18492) found +[19269] Forked 18493 +(18493) found +[19268] Forked 18494 +(18494) found +[19267] Forked 18495 +(18495) found +[19266] Forked 18496 +(18496) found +[19265] Forked 18497 +(18497) found +[19264] Forked 18498 +(18498) found +[19263] Forked 18499 +(18499) found +[19262] Forked 18500 +(18500) found +[19261] Forked 18501 +(18501) found +[19260] Forked 18502 +(18502) found +[19259] Forked 18503 +[19258] Forked 18504 +(18503) found +(18504) found +[19257] Forked 18505 +[19256] Forked 18506 +(18505) found +(18506) found +[19255] Forked 18507 +[19254] Forked 18508 +(18507) found +(18508) found +[19253] Forked 18509 +[19252] Forked 18510 +(18509) found +(18510) found +[19251] Forked 18511 +[19250] Forked 18512 +(18511) found +(18512) found +[19249] Forked 18513 +[19248] Forked 18514 +(18513) found +(18514) found +[19247] Forked 18515 +[19246] Forked 18516 +(18515) found +(18516) found +[19245] Forked 18517 +[19244] Forked 18518 +(18518) found +(18517) found +[19243] Forked 18519 +(18519) found +[19242] Forked 18520 +(18520) found +[19241] Forked 18521 +(18521) found +[19240] Forked 18522 +(18522) found +[19239] Forked 18523 +(18523) found +[19238] Forked 18524 +(18524) found +[19237] Forked 18525 +(18525) found +[19236] Forked 18526 +(18526) found +[19235] Forked 18527 +(18527) found +[19234] Forked 18528 +(18528) found +[19233] Forked 18529 +(18529) found +[19232] Forked 18530 +(18530) found +[19231] Forked 18531 +(18531) found +[19230] Forked 18532 +(18532) found +[19229] Forked 18533 +(18533) found +[19228] Forked 18534 +(18534) found +[19227] Forked 18535 +(18535) found +[19226] Forked 18536 +(18536) found +[19225] Forked 18537 +(18537) found +[19224] Forked 18538 +(18538) found +[19223] Forked 18539 +(18539) found +[19222] Forked 18540 +(18540) found +[19221] Forked 18541 +(18541) found +[19220] Forked 18542 +(18542) found +[19219] Forked 18543 +(18543) found +[19218] Forked 18544 +(18544) found +[19217] Forked 18545 +(18545) found +[19216] Forked 18546 +(18546) found +[19215] Forked 18547 +(18547) found +[19214] Forked 18548 +(18548) found +[19213] Forked 18549 +(18549) found +[19212] Forked 18550 +(18550) found +[19211] Forked 18551 +(18551) found +[19210] Forked 18552 +(18552) found +[19209] Forked 18553 +(18553) found +[19208] Forked 18554 +(18554) found +[19207] Forked 18555 +(18555) found +[19206] Forked 18556 +(18556) found +[19205] Forked 18557 +(18557) found +[19204] Forked 18558 +(18558) found +[19203] Forked 18559 +(18559) found +[19202] Forked 18560 +(18560) found +[19201] Forked 18561 +(18561) found +[19200] Forked 18562 +(18562) found +[19199] Forked 18563 +(18563) found +[19198] Forked 18564 +(18564) found +[19197] Forked 18565 +(18565) found +[19196] Forked 18566 +(18566) found +[19195] Forked 18567 +(18567) found +[19194] Forked 18568 +(18568) found +[19193] Forked 18569 +(18569) found +[19192] Forked 18570 +(18570) found +[19191] Forked 18571 +(18571) found +[19190] Forked 18572 +(18572) found +[19189] Forked 18573 +(18573) found +[19188] Forked 18574 +(18574) found +[19187] Forked 18575 +[19186] Forked 18576 +(18575) found +(18576) found +[19185] Forked 18577 +[19184] Forked 18578 +(18577) found +(18578) found +[19183] Forked 18579 +[19182] Forked 18580 +(18579) found +(18580) found +[19181] Forked 18581 +[19180] Forked 18582 +(18581) found +(18582) found +[19179] Forked 18583 +[19178] Forked 18584 +(18583) found +(18584) found +[19177] Forked 18585 +[19176] Forked 18586 +(18585) found +(18586) found +[19175] Forked 18587 +[19174] Forked 18588 +(18587) found +(18588) found +[19173] Forked 18589 +[19172] Forked 18590 +(18589) found +(18590) found +[19171] Forked 18591 +[19170] Forked 18592 +(18591) found +(18592) found +[19169] Forked 18593 +[19168] Forked 18594 +(18593) found +(18594) found +[19167] Forked 18595 +[19166] Forked 18596 +(18595) found +(18596) found +[19165] Forked 18597 +[19164] Forked 18598 +(18597) found +(18598) found +[19163] Forked 18599 +[19162] Forked 18600 +(18599) found +(18600) found +[19161] Forked 18601 +[19160] Forked 18602 +(18601) found +(18602) found +[19159] Forked 18603 +[19158] Forked 18604 +(18603) found +(18604) found +[19157] Forked 18605 +[19156] Forked 18606 +(18605) found +(18606) found +[19155] Forked 18607 +[19154] Forked 18608 +(18607) found +(18608) found +[19153] Forked 18609 +[19152] Forked 18610 +(18609) found +(18610) found +[19151] Forked 18612 +[19150] Forked 18613 +(18612) found +(18613) found +[19149] Forked 18614 +[19148] Forked 18615 +(18614) found +(18615) found +[19147] Forked 18616 +[19146] Forked 18617 +(18616) found +(18617) found +[19145] Forked 18618 +[19144] Forked 18619 +(18618) found +(18619) found +[19143] Forked 18620 +(18620) found +[19142] Forked 18621 +(18621) found +[19141] Forked 18622 +(18622) found +[19140] Forked 18623 +(18623) found +[19139] Forked 18624 +(18624) found +[19138] Forked 18625 +(18625) found +[19137] Forked 18626 +(18626) found +[19136] Forked 18627 +(18627) found +[19135] Forked 18628 +(18628) found +[19134] Forked 18629 +(18629) found +[19133] Forked 18630 +(18630) found +[19132] Forked 18631 +(18631) found +[19131] Forked 18632 +(18632) found +[19130] Forked 18633 +(18633) found +[19129] Forked 18634 +(18634) found +[19128] Forked 18635 +(18635) found +[19127] Forked 18636 +(18636) found +[19126] Forked 18637 +(18637) found +[19125] Forked 18638 +(18638) found +[19124] Forked 18639 +(18639) found +[19123] Forked 18640 +(18640) found +[19122] Forked 18641 +(18641) found +[19121] Forked 18642 +(18642) found +[19120] Forked 18643 +(18643) found +[19119] Forked 18644 +(18644) found +[19118] Forked 18645 +(18645) found +[19117] Forked 18646 +(18646) found +[19116] Forked 18647 +(18647) found +[19115] Forked 18648 +(18648) found +[19114] Forked 18649 +(18649) found +[19113] Forked 18650 +(18650) found +[19112] Forked 18651 +(18651) found +[19111] Forked 18652 +(18652) found +[19110] Forked 18653 +(18653) found +[19109] Forked 18654 +(18654) found +[19108] Forked 18655 +(18655) found +[19107] Forked 18656 +(18656) found +[19106] Forked 18657 +[19105] Forked 18658 +(18657) found +(18658) found +[19104] Forked 18659 +[19103] Forked 18660 +(18659) found +(18660) found +[19102] Forked 18661 +[19101] Forked 18662 +(18661) found +(18662) found +[19100] Forked 18663 +[19099] Forked 18664 +(18663) found +(18664) found +[19098] Forked 18665 +[19097] Forked 18666 +(18665) found +(18666) found +[19096] Forked 18667 +[19095] Forked 18668 +(18667) found +(18668) found +[19094] Forked 18669 +[19093] Forked 18670 +(18669) found +(18670) found +[19092] Forked 18671 +[19091] Forked 18672 +(18671) found +(18672) found +[19090] Forked 18673 +[19089] Forked 18674 +(18673) found +(18674) found +[19088] Forked 18675 +[19087] Forked 18676 +(18675) found +(18676) found +[19086] Forked 18677 +[19085] Forked 18678 +(18677) found +(18678) found +[19084] Forked 18679 +[19083] Forked 18680 +(18679) found +(18680) found +[19082] Forked 18681 +[19081] Forked 18682 +(18681) found +(18682) found +[19080] Forked 18683 +[19079] Forked 18684 +(18683) found +(18684) found +[19078] Forked 18685 +[19077] Forked 18686 +(18685) found +(18686) found +[19076] Forked 18687 +[19075] Forked 18688 +(18687) found +(18688) found +[19074] Forked 18689 +[19073] Forked 18690 +(18689) found +(18690) found +[19072] Forked 18691 +[19071] Forked 18692 +(18691) found +(18692) found +[19070] Forked 18693 +[19069] Forked 18694 +(18693) found +(18694) found +[19068] Forked 18695 +[19067] Forked 18696 +(18695) found +(18696) found +[19066] Forked 18697 +[19065] Forked 18698 +(18697) found +(18698) found +[19064] Forked 18699 +[19063] Forked 18700 +(18699) found +(18700) found +[19062] Forked 18701 +[19061] Forked 18702 +(18701) found +(18702) found +[19060] Forked 18703 +[19059] Forked 18704 +(18703) found +(18704) found +[19058] Forked 18705 +[19057] Forked 18706 +(18705) found +(18706) found +[19056] Forked 18707 +[19055] Forked 18708 +(18707) found +(18708) found +[19054] Forked 18709 +[19053] Forked 18710 +(18709) found +(18710) found +[19052] Forked 18711 +[19051] Forked 18712 +(18711) found +(18712) found +[19050] Forked 18713 +[19049] Forked 18714 +(18713) found +(18714) found +[19048] Forked 18715 +[19047] Forked 18716 +(18715) found +(18716) found +[19046] Forked 18717 +[19045] Forked 18718 +(18717) found +(18718) found +[19044] Forked 18719 +[19043] Forked 18720 +(18719) found +(18720) found +[19042] Forked 18721 +[19041] Forked 18722 +(18721) found +(18722) found +[19040] Forked 18723 +[19039] Forked 18724 +(18723) found +(18724) found +[19038] Forked 18725 +[19037] Forked 18726 +(18725) found +(18726) found +[19036] Forked 18727 +[19035] Forked 18728 +(18727) found +(18728) found +[19034] Forked 18729 +[19033] Forked 18730 +(18729) found +(18730) found +[19032] Forked 18731 +[19031] Forked 18732 +(18731) found +(18732) found +[19030] Forked 18733 +[19029] Forked 18734 +(18733) found +(18734) found +[19028] Forked 18735 +[19027] Forked 18736 +(18735) found +(18736) found +[19026] Forked 18737 +(18737) found +[19025] Forked 18738 +[19024] Forked 18739 +(18738) found +(18739) found +[19023] Forked 18740 +[19022] Forked 18741 +(18740) found +(18741) found +[19021] Forked 18742 +[19020] Forked 18743 +(18742) found +(18743) found +[19019] Forked 18744 +[19018] Forked 18745 +(18744) found +(18745) found +[19017] Forked 18746 +[19016] Forked 18747 +(18746) found +(18747) found +[19015] Forked 18748 +[19014] Forked 18749 +(18748) found +(18749) found +[19013] Forked 18750 +[19012] Forked 18751 +(18750) found +(18751) found +[19011] Forked 18752 +[19010] Forked 18753 +(18752) found +(18753) found +[19009] Forked 18754 +[19008] Forked 18755 +(18754) found +(18755) found +[19007] Forked 18756 +[19006] Forked 18757 +(18756) found +(18757) found +[19005] Forked 18758 +[19004] Forked 18759 +(18758) found +(18759) found +[19003] Forked 18760 +[19002] Forked 18761 +(18760) found +(18761) found +[19001] Forked 18762 +[19000] Forked 18763 +(18762) found +(18763) found +[18999] Forked 18764 +[18998] Forked 18765 +(18764) found +(18765) found +[18997] Forked 18766 +[18996] Forked 18767 +(18766) found +(18767) found +[18995] Forked 18768 +[18994] Forked 18769 +(18768) found +(18769) found +[18993] Forked 18770 +[18992] Forked 18771 +(18770) found +(18771) found +[18991] Forked 18772 +[18990] Forked 18773 +(18772) found +(18773) found +[18989] Forked 18774 +[18988] Forked 18775 +(18774) found +(18775) found +[18987] Forked 18776 +[18986] Forked 18777 +(18776) found +(18777) found +[18985] Forked 18778 +[18984] Forked 18779 +(18778) found +(18779) found +[18983] Forked 18780 +[18982] Forked 18781 +(18780) found +(18781) found +[18981] Forked 18782 +[18980] Forked 18783 +(18782) found +(18783) found +[18979] Forked 18784 +[18978] Forked 18785 +(18784) found +(18785) found +[18977] Forked 18786 +[18976] Forked 18787 +(18786) found +(18787) found +[18975] Forked 18788 +[18974] Forked 18789 +(18788) found +(18789) found +[18973] Forked 18790 +[18972] Forked 18791 +(18790) found +(18791) found +[18971] Forked 18792 +(18792) found +[18970] Forked 18793 +(18793) found +[18969] Forked 18794 +(18794) found +[18968] Forked 18795 +(18795) found +[18967] Forked 18796 +(18796) found +[18966] Forked 18797 +(18797) found +[18965] Forked 18798 +(18798) found +[18964] Forked 18799 +(18799) found +[18963] Forked 18800 +(18800) found +[18962] Forked 18801 +(18801) found +[18961] Forked 18802 +(18802) found +[18960] Forked 18803 +(18803) found +[18959] Forked 18804 +(18804) found +[18958] Forked 18805 +(18805) found +[18957] Forked 18806 +(18806) found +[18956] Forked 18807 +(18807) found +[18955] Forked 18808 +(18808) found +[18954] Forked 18809 +(18809) found +[18953] Forked 18810 +(18810) found +[18952] Forked 18811 +(18811) found +[18951] Forked 18812 +(18812) found +[18950] Forked 18813 +(18813) found +[18949] Forked 18814 +(18814) found +[18948] Forked 18815 +(18815) found +[18947] Forked 18816 +(18816) found +[18946] Forked 18817 +(18817) found +[18945] Forked 18818 +(18818) found +[18944] Forked 18819 +(18819) found +[18943] Forked 18820 +(18820) found +[18942] Forked 18821 +(18821) found +[18941] Forked 18822 +(18822) found +[18940] Forked 18823 +(18823) found +[18939] Forked 18824 +(18824) found +[18938] Forked 18825 +(18825) found +[18937] Forked 18826 +(18826) found +[18936] Forked 18827 +(18827) found +[18935] Forked 18828 +(18828) found +[18934] Forked 18829 +[18933] Forked 18830 +(18829) found +(18830) found +[18932] Forked 18831 +[18931] Forked 18832 +(18831) found +(18832) found +[18930] Forked 18833 +[18929] Forked 18834 +(18833) found +(18834) found +[18928] Forked 18835 +[18927] Forked 18836 +(18835) found +(18836) found +[18926] Forked 18837 +[18925] Forked 18838 +(18837) found +(18838) found +[18924] Forked 18839 +[18923] Forked 18840 +(18839) found +(18840) found +[18922] Forked 18841 +[18921] Forked 18842 +(18841) found +(18842) found +[18920] Forked 18843 +[18919] Forked 18844 +(18843) found +(18844) found +[18918] Forked 18845 +[18917] Forked 18846 +(18845) found +(18846) found +[18916] Forked 18847 +[18915] Forked 18848 +(18847) found +(18848) found +[18914] Forked 18849 +[18913] Forked 18850 +(18849) found +(18850) found +[18912] Forked 18851 +[18911] Forked 18852 +(18851) found +(18852) found +[18910] Forked 18853 +[18909] Forked 18854 +(18853) found +(18854) found +[18908] Forked 18855 +[18907] Forked 18856 +(18855) found +(18856) found +[18906] Forked 18857 +[18905] Forked 18858 +(18857) found +(18858) found +[18904] Forked 18859 +[18903] Forked 18860 +(18859) found +(18860) found +[18902] Forked 18861 +[18901] Forked 18862 +(18861) found +(18862) found +[18900] Forked 18863 +[18899] Forked 18864 +(18863) found +(18864) found +[18898] Forked 18865 +[18897] Forked 18866 +(18865) found +(18866) found +[18896] Forked 18867 +(18867) found +[18895] Forked 18868 +[18894] Forked 18869 +(18868) found +(18869) found +[18893] Forked 18870 +[18892] Forked 18871 +(18870) found +(18871) found +[18891] Forked 18872 +(18872) found +[18890] Forked 18873 +(18873) found +[18889] Forked 18874 +(18874) found +[18888] Forked 18875 +(18875) found +[18887] Forked 18876 +(18876) found +[18886] Forked 18877 +(18877) found +[18885] Forked 18878 +(18878) found +[18884] Forked 18879 +(18879) found +[18883] Forked 18880 +(18880) found +[18882] Forked 18881 +(18881) found +[18881] Forked 18882 +(18882) found +[18880] Forked 18883 +(18883) found +[18879] Forked 18884 +(18884) found +[18878] Forked 18885 +(18885) found +[18877] Forked 18886 +(18886) found +[18876] Forked 18887 +(18887) found +[18875] Forked 18888 +(18888) found +[18874] Forked 18889 +(18889) found +[18873] Forked 18890 +(18890) found +[18872] Forked 18891 +(18891) found +[18871] Forked 18892 +(18892) found +[18870] Forked 18895 +(18895) found +[18869] Forked 18896 +(18896) found +[18868] Forked 18897 +(18897) found +[18867] Forked 18898 +(18898) found +[18866] Forked 18899 +(18899) found +[18865] Forked 18900 +(18900) found +[18864] Forked 18901 +(18901) found +[18863] Forked 18902 +(18902) found +[18862] Forked 18903 +(18903) found +[18861] Forked 18904 +(18904) found +[18860] Forked 18905 +(18905) found +[18859] Forked 18906 +(18906) found +[18858] Forked 18907 +(18907) found +[18857] Forked 18908 +(18908) found +[18856] Forked 18909 +(18909) found +[18855] Forked 18910 +(18910) found +[18854] Forked 18911 +(18911) found +[18853] Forked 18912 +(18912) found +[18852] Forked 18913 +[18851] Forked 18914 +(18913) found +(18914) found +[18850] Forked 18915 +[18849] Forked 18916 +(18915) found +(18916) found +[18848] Forked 18917 +[18847] Forked 18918 +(18917) found +(18918) found +[18846] Forked 18919 +[18845] Forked 18920 +(18920) found +(18919) found +[18844] Forked 18921 +(18921) found +[18843] Forked 18922 +(18922) found +[18842] Forked 18923 +(18923) found +[18841] Forked 18925 +(18925) found +[18840] Forked 18926 +(18926) found +[18839] Forked 18927 +(18927) found +[18838] Forked 18928 +(18928) found +[18837] Forked 18929 +(18929) found +[18836] Forked 18930 +(18930) found +[18835] Forked 18931 +(18931) found +[18834] Forked 18932 +(18932) found +[18833] Forked 18933 +(18933) found +[18832] Forked 18934 +(18934) found +[18831] Forked 18935 +(18935) found +[18830] Forked 18936 +(18936) found +[18829] Forked 18937 +(18937) found +[18828] Forked 18938 +(18938) found +[18827] Forked 18939 +(18939) found +[18826] Forked 18940 +(18940) found +[18825] Forked 18941 +(18941) found +[18824] Forked 18942 +(18942) found +[18823] Forked 18943 +(18943) found +[18822] Forked 18944 +(18944) found +[18821] Forked 18945 +(18945) found +[18820] Forked 18946 +[18819] Forked 18947 +(18946) found +(18947) found +[18818] Forked 18948 +[18817] Forked 18949 +(18948) found +(18949) found +[18816] Forked 18950 +[18815] Forked 18951 +(18950) found +(18951) found +[18814] Forked 18952 +[18813] Forked 18953 +(18952) found +(18953) found +[18812] Forked 18954 +[18811] Forked 18955 +(18954) found +(18955) found +[18810] Forked 18956 +[18809] Forked 18957 +(18956) found +(18957) found +[18808] Forked 18958 +[18807] Forked 18959 +(18958) found +(18959) found +[18806] Forked 18960 +[18805] Forked 18961 +(18960) found +(18961) found +[18804] Forked 18962 +[18803] Forked 18963 +(18962) found +(18963) found +[18802] Forked 18964 +[18801] Forked 18965 +(18964) found +(18965) found +[18800] Forked 18966 +[18799] Forked 18967 +(18966) found +(18967) found +[18798] Forked 18968 +(18968) found +[18797] Forked 18969 +(18969) found +[18796] Forked 18970 +[18795] Forked 18971 +(18970) found +(18971) found +[18794] Forked 18972 +[18793] Forked 18973 +(18972) found +(18973) found +[18792] Forked 18974 +[18791] Forked 18975 +(18974) found +(18975) found +[18790] Forked 18976 +[18789] Forked 18977 +(18976) found +(18977) found +[18788] Forked 18978 +[18787] Forked 18979 +(18978) found +(18979) found +[18786] Forked 18980 +[18785] Forked 18981 +(18980) found +(18981) found +[18784] Forked 18982 +[18783] Forked 18983 +(18982) found +(18983) found +[18782] Forked 18984 +[18781] Forked 18985 +(18984) found +(18985) found +[18780] Forked 18986 +[18779] Forked 18987 +(18986) found +(18987) found +[18778] Forked 18988 +[18777] Forked 18990 +(18988) found +(18990) found +[18776] Forked 18991 +(18991) found +[18775] Forked 18992 +(18992) found +[18774] Forked 18993 +(18993) found +[18773] Forked 18994 +(18994) found +[18772] Forked 18995 +(18995) found +[18771] Forked 18996 +(18996) found +[18770] Forked 18997 +(18997) found +[18769] Forked 18998 +(18998) found +[18768] Forked 18999 +(18999) found +[18767] Forked 19000 +(19000) found +[18766] Forked 19001 +(19001) found +[18765] Forked 19002 +(19002) found +[18764] Forked 19003 +(19003) found +[18763] Forked 19004 +(19004) found +[18762] Forked 19005 +(19005) found +[18761] Forked 19006 +(19006) found +[18760] Forked 19007 +(19007) found +[18759] Forked 19008 +(19008) found +[18758] Forked 19009 +(19009) found +[18757] Forked 19010 +(19010) found +[18756] Forked 19011 +(19011) found +[18755] Forked 19012 +(19012) found +[18754] Forked 19013 +(19013) found +[18753] Forked 19014 +(19014) found +[18752] Forked 19015 +(19015) found +[18751] Forked 19017 +(19017) found +[18750] Forked 19018 +(19018) found +[18749] Forked 19019 +(19019) found +[18748] Forked 19020 +(19020) found +[18747] Forked 19021 +(19021) found +[18746] Forked 19022 +(19022) found +[18745] Forked 19023 +(19023) found +[18744] Forked 19024 +(19024) found +[18743] Forked 19025 +(19025) found +[18742] Forked 19026 +(19026) found +[18741] Forked 19027 +(19027) found +[18740] Forked 19028 +(19028) found +[18739] Forked 19029 +(19029) found +[18738] Forked 19030 +(19030) found +[18737] Forked 19031 +[18736] Forked 19032 +(19031) found +(19032) found +[18735] Forked 19033 +[18734] Forked 19034 +(19033) found +(19034) found +[18733] Forked 19035 +[18732] Forked 19036 +(19035) found +(19036) found +[18731] Forked 19037 +[18730] Forked 19038 +(19037) found +(19038) found +[18729] Forked 19039 +[18728] Forked 19040 +(19039) found +(19040) found +[18727] Forked 19041 +[18726] Forked 19042 +(19041) found +(19042) found +[18725] Forked 19043 +[18724] Forked 19044 +(19043) found +(19044) found +[18723] Forked 19045 +[18722] Forked 19046 +(19045) found +(19046) found +[18721] Forked 19047 +[18720] Forked 19048 +(19047) found +(19048) found +[18719] Forked 19049 +[18718] Forked 19050 +(19049) found +(19050) found +[18717] Forked 19051 +[18716] Forked 19052 +(19051) found +(19052) found +[18715] Forked 19053 +[18714] Forked 19054 +(19053) found +(19054) found +[18713] Forked 19055 +[18712] Forked 19056 +(19055) found +(19056) found +[18711] Forked 19057 +[18710] Forked 19058 +(19057) found +(19058) found +[18709] Forked 19059 +[18708] Forked 19060 +(19059) found +(19060) found +[18707] Forked 19061 +[18706] Forked 19062 +(19061) found +(19062) found +[18705] Forked 19063 +[18704] Forked 19064 +(19063) found +(19064) found +[18703] Forked 19065 +[18702] Forked 19066 +(19065) found +(19066) found +[18701] Forked 19067 +[18700] Forked 19068 +(19067) found +(19068) found +[18699] Forked 19069 +[18698] Forked 19070 +(19069) found +(19070) found +[18697] Forked 19071 +[18696] Forked 19072 +(19071) found +(19072) found +[18695] Forked 19073 +[18694] Forked 19074 +(19073) found +(19074) found +[18693] Forked 19075 +[18692] Forked 19076 +(19075) found +(19076) found +[18691] Forked 19077 +[18690] Forked 19078 +(19077) found +(19078) found +[18689] Forked 19079 +(19079) found +[18688] Forked 19080 +[18687] Forked 19081 +(19080) found +(19081) found +[18686] Forked 19082 +[18685] Forked 19083 +(19082) found +(19083) found +[18684] Forked 19084 +[18683] Forked 19085 +(19084) found +(19085) found +[18682] Forked 19086 +[18681] Forked 19087 +(19086) found +(19087) found +[18680] Forked 19088 +[18679] Forked 19089 +(19088) found +(19089) found +[18678] Forked 19090 +[18677] Forked 19091 +(19090) found +(19091) found +[18676] Forked 19092 +[18675] Forked 19093 +(19092) found +(19093) found +[18674] Forked 19094 +[18673] Forked 19095 +(19094) found +(19095) found +[18672] Forked 19096 +[18671] Forked 19097 +(19096) found +(19097) found +[18670] Forked 19098 +[18669] Forked 19099 +(19098) found +(19099) found +[18668] Forked 19100 +[18667] Forked 19101 +(19100) found +(19101) found +[18666] Forked 19102 +[18665] Forked 19104 +(19102) found +(19104) found +[18664] Forked 19105 +[18663] Forked 19106 +(19105) found +(19106) found +[18662] Forked 19107 +[18661] Forked 19108 +(19107) found +(19108) found +[18660] Forked 19109 +[18659] Forked 19110 +(19109) found +(19110) found +[18658] Forked 19111 +[18657] Forked 19112 +(19111) found +(19112) found +[18656] Forked 19113 +[18655] Forked 19114 +(19113) found +(19114) found +[18654] Forked 19115 +[18653] Forked 19116 +(19115) found +(19116) found +[18652] Forked 19117 +[18651] Forked 19118 +(19117) found +(19118) found +[18650] Forked 19119 +[18649] Forked 19120 +(19119) found +(19120) found +[18648] Forked 19121 +[18647] Forked 19122 +(19121) found +(19122) found +[18646] Forked 19123 +[18645] Forked 19124 +(19123) found +(19124) found +[18644] Forked 19125 +[18643] Forked 19126 +(19125) found +(19126) found +[18642] Forked 19127 +[18641] Forked 19128 +(19127) found +(19128) found +[18640] Forked 19129 +[18639] Forked 19130 +(19129) found +(19130) found +[18638] Forked 19131 +[18637] Forked 19132 +(19131) found +(19132) found +[18636] Forked 19133 +[18635] Forked 19134 +(19133) found +(19134) found +[18634] Forked 19135 +[18633] Forked 19136 +(19135) found +(19136) found +[18632] Forked 19137 +[18631] Forked 19138 +(19137) found +(19138) found +[18630] Forked 19139 +[18629] Forked 19140 +(19139) found +(19140) found +[18628] Forked 19141 +[18627] Forked 19142 +(19141) found +(19142) found +[18626] Forked 19143 +[18625] Forked 19144 +(19143) found +(19144) found +[18624] Forked 19145 +[18623] Forked 19146 +(19145) found +(19146) found +[18622] Forked 19147 +[18621] Forked 19148 +(19147) found +(19148) found +[18620] Forked 19149 +[18619] Forked 19150 +(19149) found +(19150) found +[18618] Forked 19151 +[18617] Forked 19152 +(19151) found +(19152) found +[18616] Forked 19153 +[18615] Forked 19154 +(19153) found +(19154) found +[18614] Forked 19155 +[18613] Forked 19156 +(19155) found +(19156) found +[18612] Forked 19157 +[18611] Forked 19158 +(19157) found +(19158) found +[18610] Forked 19159 +[18609] Forked 19160 +(19159) found +(19160) found +[18608] Forked 19161 +[18607] Forked 19162 +(19161) found +(19162) found +[18606] Forked 19163 +[18605] Forked 19164 +(19163) found +(19164) found +[18604] Forked 19165 +[18603] Forked 19166 +(19165) found +(19166) found +[18602] Forked 19167 +[18601] Forked 19168 +(19167) found +(19168) found +[18600] Forked 19169 +[18599] Forked 19170 +(19169) found +(19170) found +[18598] Forked 19171 +(19171) found +[18597] Forked 19172 +(19172) found +[18596] Forked 19173 +(19173) found +[18595] Forked 19174 +(19174) found +[18594] Forked 19175 +(19175) found +[18593] Forked 19176 +(19176) found +[18592] Forked 19177 +(19177) found +[18591] Forked 19178 +(19178) found +[18590] Forked 19179 +(19179) found +[18589] Forked 19180 +(19180) found +[18588] Forked 19181 +(19181) found +[18587] Forked 19182 +(19182) found +[18586] Forked 19183 +(19183) found +[18585] Forked 19184 +(19184) found +[18584] Forked 19185 +(19185) found +[18583] Forked 19186 +(19186) found +[18582] Forked 19187 +(19187) found +[18581] Forked 19188 +(19188) found +[18580] Forked 19189 +(19189) found +[18579] Forked 19191 +(19191) found +[18578] Forked 19192 +(19192) found +[18577] Forked 19193 +(19193) found +[18576] Forked 19194 +(19194) found +[18575] Forked 19195 +(19195) found +[18574] Forked 19196 +(19196) found +[18573] Forked 19197 +(19197) found +[18572] Forked 19198 +(19198) found +[18571] Forked 19199 +(19199) found +[18570] Forked 19200 +(19200) found +[18569] Forked 19201 +(19201) found +[18568] Forked 19202 +(19202) found +[18567] Forked 19203 +(19203) found +[18566] Forked 19204 +(19204) found +[18565] Forked 19205 +(19205) found +[18564] Forked 19206 +(19206) found +[18563] Forked 19207 +[18562] Forked 19208 +(19207) found +(19208) found +[18561] Forked 19209 +[18560] Forked 19210 +(19209) found +(19210) found +[18559] Forked 19211 +[18558] Forked 19212 +(19211) found +(19212) found +[18557] Forked 19213 +[18556] Forked 19214 +(19213) found +(19214) found +[18555] Forked 19215 +[18554] Forked 19216 +(19215) found +(19216) found +[18553] Forked 19217 +[18552] Forked 19218 +(19217) found +(19218) found +[18551] Forked 19219 +[18550] Forked 19220 +(19219) found +(19220) found +[18549] Forked 19221 +[18548] Forked 19222 +(19221) found +(19222) found +[18547] Forked 19223 +[18546] Forked 19224 +(19223) found +(19224) found +[18545] Forked 19225 +[18544] Forked 19226 +(19225) found +(19226) found +[18543] Forked 19227 +[18542] Forked 19228 +(19227) found +(19228) found +[18541] Forked 19229 +[18540] Forked 19230 +(19229) found +(19230) found +[18539] Forked 19231 +[18538] Forked 19232 +(19231) found +(19232) found +[18537] Forked 19233 +[18536] Forked 19234 +(19233) found +(19234) found +[18535] Forked 19235 +[18534] Forked 19236 +(19235) found +(19236) found +[18533] Forked 19237 +[18532] Forked 19238 +(19237) found +(19238) found +[18531] Forked 19239 +[18530] Forked 19240 +(19239) found +(19240) found +[18529] Forked 19241 +[18528] Forked 19242 +(19241) found +(19242) found +[18527] Forked 19243 +[18526] Forked 19244 +(19243) found +(19244) found +[18525] Forked 19245 +[18524] Forked 19246 +(19245) found +(19246) found +[18523] Forked 19247 +[18522] Forked 19248 +(19247) found +(19248) found +[18521] Forked 19249 +[18520] Forked 19250 +(19249) found +(19250) found +[18519] Forked 19251 +[18518] Forked 19252 +(19251) found +(19252) found +[18517] Forked 19253 +(19253) found +[18516] Forked 19254 +[18515] Forked 19255 +(19254) found +(19255) found +[18514] Forked 19256 +[18513] Forked 19257 +(19256) found +(19257) found +[18512] Forked 19258 +[18511] Forked 19259 +(19258) found +(19259) found +[18510] Forked 19260 +[18509] Forked 19261 +(19260) found +(19261) found +[18508] Forked 19262 +[18507] Forked 19263 +(19262) found +(19263) found +[18506] Forked 19264 +[18505] Forked 19265 +(19264) found +(19265) found +[18504] Forked 19266 +[18503] Forked 19267 +(19266) found +(19267) found +[18502] Forked 19268 +[18501] Forked 19269 +(19268) found +(19269) found +[18500] Forked 19270 +[18499] Forked 19271 +(19270) found +(19271) found +[18498] Forked 19272 +[18497] Forked 19273 +(19272) found +(19273) found +[18496] Forked 19274 +[18495] Forked 19275 +(19274) found +(19275) found +[18494] Forked 19276 +[18493] Forked 19277 +(19276) found +(19277) found +[18492] Forked 19278 +[18491] Forked 19279 +(19278) found +(19279) found +[18490] Forked 19280 +[18489] Forked 19281 +(19280) found +(19281) found +[18488] Forked 19282 +[18487] Forked 19283 +(19282) found +(19283) found +[18486] Forked 19284 +[18485] Forked 19285 +(19284) found +(19285) found +[18484] Forked 19286 +[18483] Forked 19287 +(19286) found +(19287) found +[18482] Forked 19288 +[18481] Forked 19289 +(19288) found +(19289) found +[18480] Forked 19290 +[18479] Forked 19291 +(19290) found +(19291) found +[18478] Forked 19292 +[18477] Forked 19293 +(19292) found +(19293) found +[18476] Forked 19294 +[18475] Forked 19295 +(19294) found +(19295) found +[18474] Forked 19296 +[18473] Forked 19297 +(19296) found +(19297) found +[18472] Forked 19298 +(19298) found +[18471] Forked 19299 +(19299) found +[18470] Forked 19300 +(19300) found +[18469] Forked 19301 +(19301) found +[18468] Forked 19302 +(19302) found +[18467] Forked 19303 +(19303) found +[18466] Forked 19304 +(19304) found +[18465] Forked 19305 +(19305) found +[18464] Forked 19306 +(19306) found +[18463] Forked 19307 +(19307) found +[18462] Forked 19308 +(19308) found +[18461] Forked 19309 +(19309) found +[18460] Forked 19310 +(19310) found +[18459] Forked 19311 +(19311) found +[18458] Forked 19312 +(19312) found +[18457] Forked 19313 +(19313) found +[18456] Forked 19314 +(19314) found +[18455] Forked 19315 +(19315) found +[18454] Forked 19316 +(19316) found +[18453] Forked 19317 +(19317) found +[18452] Forked 19318 +(19318) found +[18451] Forked 19319 +(19319) found +[18450] Forked 19320 +(19320) found +[18449] Forked 19321 +(19321) found +[18448] Forked 19322 +(19322) found +[18447] Forked 19323 +(19323) found +[18446] Forked 19324 +(19324) found +[18445] Forked 19325 +(19325) found +[18444] Forked 19326 +(19326) found +[18443] Forked 19327 +(19327) found +[18442] Forked 19328 +(19328) found +[18441] Forked 19329 +(19329) found +[18440] Forked 19330 +(19330) found +[18439] Forked 19331 +(19331) found +[18438] Forked 19332 +(19332) found +[18437] Forked 19333 +(19333) found +[18436] Forked 19334 +(19334) found +[18435] Forked 19335 +(19335) found +[18434] Forked 19336 +(19336) found +[18433] Forked 19337 +(19337) found +[18432] Forked 19338 +[18431] Forked 19339 +(19338) found +(19339) found +[18430] Forked 19340 +[18429] Forked 19341 +(19340) found +(19341) found +[18428] Forked 19342 +[18427] Forked 19343 +(19342) found +(19343) found +[18426] Forked 19344 +[18425] Forked 19345 +(19344) found +(19345) found +[18424] Forked 19346 +(19346) found +[18423] Forked 19347 +(19347) found +[18422] Forked 19348 +[18421] Forked 19349 +(19348) found +(19349) found +[18420] Forked 19350 +[18419] Forked 19351 +(19350) found +(19351) found +[18418] Forked 19352 +[18417] Forked 19353 +(19352) found +(19353) found +[18416] Forked 19354 +[18415] Forked 19355 +(19354) found +(19355) found +[18414] Forked 19356 +[18413] Forked 19357 +(19356) found +(19357) found +[18412] Forked 19358 +[18411] Forked 19359 +(19358) found +(19359) found +[18410] Forked 19360 +[18409] Forked 19361 +(19360) found +(19361) found +[18408] Forked 19362 +[18407] Forked 19363 +(19362) found +(19363) found +[18406] Forked 19364 +[18405] Forked 19365 +(19364) found +(19365) found +[18404] Forked 19366 +[18403] Forked 19367 +(19366) found +(19367) found +[18402] Forked 19368 +[18401] Forked 19369 +(19368) found +(19369) found +[18400] Forked 19370 +[18399] Forked 19371 +(19370) found +(19371) found +[18398] Forked 19372 +[18397] Forked 19373 +(19372) found +(19373) found +[18396] Forked 19374 +[18395] Forked 19375 +(19374) found +(19375) found +[18394] Forked 19376 +[18393] Forked 19378 +(19376) found +(19378) found +[18392] Forked 19379 +(19379) found +[18391] Forked 19380 +(19380) found +[18390] Forked 19381 +(19381) found +[18389] Forked 19382 +(19382) found +[18388] Forked 19383 +(19383) found +[18387] Forked 19384 +(19384) found +[18386] Forked 19385 +(19385) found +[18385] Forked 19386 +(19386) found +[18384] Forked 19387 +(19387) found +[18383] Forked 19388 +(19388) found +[18382] Forked 19389 +(19389) found +[18381] Forked 19390 +(19390) found +[18380] Forked 19391 +(19391) found +[18379] Forked 19392 +(19392) found +[18378] Forked 19393 +(19393) found +[18377] Forked 19394 +(19394) found +[18376] Forked 19395 +(19395) found +[18375] Forked 19396 +(19396) found +[18374] Forked 19397 +(19397) found +[18373] Forked 19398 +(19398) found +[18372] Forked 19399 +(19399) found +[18371] Forked 19400 +(19400) found +[18370] Forked 19401 +(19401) found +[18369] Forked 19402 +(19402) found +[18368] Forked 19403 +(19403) found +[18367] Forked 19404 +(19404) found +[18366] Forked 19405 +(19405) found +[18365] Forked 19406 +(19406) found +[18364] Forked 19407 +(19407) found +[18363] Forked 19408 +(19408) found +[18362] Forked 19409 +(19409) found +[18361] Forked 19410 +(19410) found +[18360] Forked 19411 +(19411) found +[18359] Forked 19412 +(19412) found +[18358] Forked 19413 +(19413) found +[18357] Forked 19414 +(19414) found +[18356] Forked 19415 +(19415) found +[18355] Forked 19416 +(19416) found +[18354] Forked 19417 +(19417) found +[18353] Forked 19418 +(19418) found +[18352] Forked 19419 +(19419) found +[18351] Forked 19420 +(19420) found +[18350] Forked 19421 +(19421) found +[18349] Forked 19422 +(19422) found +[18348] Forked 19423 +(19423) found +[18347] Forked 19424 +(19424) found +[18346] Forked 19425 +(19425) found +[18345] Forked 19426 +(19426) found +[18344] Forked 19427 +(19427) found +[18343] Forked 19428 +(19428) found +[18342] Forked 19429 +(19429) found +[18341] Forked 19430 +(19430) found +[18340] Forked 19431 +(19431) found +[18339] Forked 19432 +(19432) found +[18338] Forked 19433 +(19433) found +[18337] Forked 19434 +(19434) found +[18336] Forked 19435 +(19435) found +[18335] Forked 19436 +(19436) found +[18334] Forked 19437 +(19437) found +[18333] Forked 19438 +(19438) found +[18332] Forked 19439 +(19439) found +[18331] Forked 19440 +(19440) found +[18330] Forked 19441 +(19441) found +[18329] Forked 19442 +(19442) found +[18328] Forked 19443 +(19443) found +[18327] Forked 19444 +(19444) found +[18326] Forked 19445 +(19445) found +[18325] Forked 19446 +(19446) found +[18324] Forked 19447 +(19447) found +[18323] Forked 19448 +(19448) found +[18322] Forked 19449 +(19449) found +[18321] Forked 19450 +(19450) found +[18320] Forked 19451 +(19451) found +[18319] Forked 19452 +(19452) found +[18318] Forked 19453 +(19453) found +[18317] Forked 19454 +[18316] Forked 19455 +(19454) found +(19455) found +[18315] Forked 19456 +[18314] Forked 19457 +(19456) found +(19457) found +[18313] Forked 19458 +[18312] Forked 19459 +(19458) found +(19459) found +[18311] Forked 19460 +[18310] Forked 19461 +(19460) found +(19461) found +[18309] Forked 19462 +[18308] Forked 19463 +(19462) found +(19463) found +[18307] Forked 19464 +[18306] Forked 19465 +(19464) found +(19465) found +[18305] Forked 19466 +[18304] Forked 19467 +(19466) found +(19467) found +[18303] Forked 19468 +[18302] Forked 19469 +(19468) found +(19469) found +[18301] Forked 19470 +[18300] Forked 19471 +(19470) found +(19471) found +[18299] Forked 19472 +[18298] Forked 19473 +(19472) found +(19473) found +[18297] Forked 19474 +[18296] Forked 19475 +(19474) found +(19475) found +[18295] Forked 19476 +[18294] Forked 19477 +(19476) found +(19477) found +[18293] Forked 19478 +[18292] Forked 19479 +(19478) found +(19479) found +[18291] Forked 19480 +[18290] Forked 19481 +(19480) found +(19481) found +[18289] Forked 19482 +[18288] Forked 19483 +(19482) found +(19483) found +[18287] Forked 19484 +[18286] Forked 19485 +(19484) found +(19485) found +[18285] Forked 19486 +[18284] Forked 19487 +(19486) found +(19487) found +[18283] Forked 19488 +[18282] Forked 19489 +(19488) found +(19489) found +[18281] Forked 19490 +[18280] Forked 19491 +(19490) found +(19491) found +[18279] Forked 19492 +[18278] Forked 19493 +(19492) found +(19493) found +[18277] Forked 19494 +[18276] Forked 19495 +(19494) found +(19495) found +[18275] Forked 19496 +[18274] Forked 19497 +(19496) found +(19497) found +[18273] Forked 19498 +[18272] Forked 19499 +(19498) found +(19499) found +[18271] Forked 19500 +(19500) found +[18270] Forked 19501 +(19501) found +[18269] Forked 19502 +(19502) found +[18268] Forked 19503 +(19503) found +[18267] Forked 19504 +(19504) found +[18266] Forked 19505 +(19505) found +[18265] Forked 19506 +(19506) found +[18264] Forked 19507 +(19507) found +[18263] Forked 19508 +(19508) found +[18262] Forked 19509 +(19509) found +[18261] Forked 19510 +(19510) found +[18260] Forked 19511 +(19511) found +[18259] Forked 19512 +(19512) found +[18258] Forked 19513 +(19513) found +[18257] Forked 19514 +(19514) found +[18256] Forked 19515 +(19515) found +[18255] Forked 19516 +(19516) found +[18254] Forked 19517 +(19517) found +[18253] Forked 19518 +(19518) found +[18252] Forked 19519 +(19519) found +[18251] Forked 19520 +(19520) found +[18250] Forked 19521 +(19521) found +[18249] Forked 19522 +(19522) found +[18248] Forked 19523 +(19523) found +[18247] Forked 19524 +(19524) found +[18246] Forked 19525 +(19525) found +[18245] Forked 19526 +(19526) found +[18244] Forked 19527 +(19527) found +[18243] Forked 19528 +(19528) found +[18242] Forked 19529 +(19529) found +[18241] Forked 19530 +(19530) found +[18240] Forked 19531 +(19531) found +[18239] Forked 19532 +(19532) found +[18238] Forked 19533 +(19533) found +[18237] Forked 19534 +(19534) found +[18236] Forked 19535 +[18235] Forked 19536 +(19535) found +(19536) found +[18234] Forked 19537 +[18233] Forked 19538 +(19537) found +(19538) found +[18232] Forked 19539 +[18231] Forked 19540 +(19539) found +(19540) found +[18230] Forked 19541 +[18229] Forked 19542 +(19541) found +(19542) found +[18228] Forked 19543 +[18227] Forked 19544 +(19543) found +(19544) found +[18226] Forked 19545 +[18225] Forked 19546 +(19545) found +(19546) found +[18224] Forked 19547 +[18223] Forked 19548 +(19547) found +(19548) found +[18222] Forked 19549 +[18221] Forked 19550 +(19549) found +(19550) found +[18220] Forked 19551 +[18219] Forked 19552 +(19551) found +(19552) found +[18218] Forked 19553 +[18217] Forked 19554 +(19553) found +(19554) found +[18216] Forked 19555 +[18215] Forked 19556 +(19555) found +(19556) found +[18214] Forked 19557 +[18213] Forked 19558 +(19557) found +(19558) found +[18212] Forked 19559 +[18211] Forked 19560 +(19559) found +(19560) found +[18210] Forked 19561 +[18209] Forked 19562 +(19561) found +(19562) found +[18208] Forked 19563 +[18207] Forked 19564 +(19563) found +(19564) found +[18206] Forked 19565 +[18205] Forked 19566 +(19565) found +(19566) found +[18204] Forked 19567 +[18203] Forked 19568 +(19567) found +(19568) found +[18202] Forked 19569 +[18201] Forked 19570 +(19569) found +(19570) found +[18200] Forked 19571 +[18199] Forked 19572 +(19571) found +(19572) found +[18198] Forked 19573 +[18197] Forked 19574 +(19573) found +(19574) found +[18196] Forked 19575 +[18195] Forked 19576 +(19575) found +(19576) found +[18194] Forked 19577 +[18193] Forked 19578 +(19577) found +(19578) found +[18192] Forked 19579 +[18191] Forked 19580 +(19579) found +(19580) found +[18190] Forked 19581 +[18189] Forked 19582 +(19581) found +(19582) found +[18188] Forked 19583 +[18187] Forked 19584 +(19583) found +(19584) found +[18186] Forked 19585 +[18185] Forked 19586 +(19585) found +(19586) found +[18184] Forked 19587 +[18183] Forked 19588 +(19587) found +(19588) found +[18182] Forked 19589 +[18181] Forked 19590 +(19589) found +(19590) found +[18180] Forked 19591 +[18179] Forked 19592 +(19591) found +(19592) found +[18178] Forked 19593 +[18177] Forked 19594 +(19593) found +(19594) found +[18176] Forked 19595 +[18175] Forked 19596 +(19595) found +(19596) found +[18174] Forked 19597 +[18173] Forked 19598 +(19597) found +(19598) found +[18172] Forked 19599 +[18171] Forked 19600 +(19599) found +(19600) found +[18170] Forked 19601 +[18169] Forked 19602 +(19601) found +(19602) found +[18168] Forked 19603 +[18167] Forked 19604 +(19603) found +(19604) found +[18166] Forked 19605 +[18165] Forked 19606 +(19605) found +(19606) found +[18164] Forked 19607 +[18163] Forked 19608 +(19607) found +(19608) found +[18162] Forked 19609 +[18161] Forked 19610 +(19609) found +(19610) found +[18160] Forked 19611 +[18159] Forked 19612 +(19611) found +(19612) found +[18158] Forked 19613 +[18157] Forked 19614 +(19613) found +(19614) found +[18156] Forked 19615 +[18155] Forked 19616 +(19615) found +(19616) found +[18154] Forked 19617 +[18153] Forked 19618 +(19617) found +(19618) found +[18152] Forked 19619 +[18151] Forked 19620 +(19619) found +(19620) found +[18150] Forked 19621 +[18149] Forked 19622 +(19621) found +(19622) found +[18148] Forked 19623 +[18147] Forked 19624 +(19623) found +(19624) found +[18146] Forked 19625 +[18145] Forked 19626 +(19625) found +(19626) found +[18144] Forked 19627 +(19627) found +[18143] Forked 19628 +(19628) found +[18142] Forked 19629 +(19629) found +[18141] Forked 19630 +(19630) found +[18140] Forked 19631 +(19631) found +[18139] Forked 19632 +(19632) found +[18138] Forked 19633 +(19633) found +[18137] Forked 19634 +(19634) found +[18136] Forked 19635 +(19635) found +[18135] Forked 19636 +(19636) found +[18134] Forked 19637 +(19637) found +[18133] Forked 19638 +(19638) found +[18132] Forked 19639 +(19639) found +[18131] Forked 19640 +(19640) found +[18130] Forked 19641 +(19641) found +[18129] Forked 19642 +(19642) found +[18128] Forked 19643 +(19643) found +[18127] Forked 19644 +(19644) found +[18126] Forked 19645 +(19645) found +[18125] Forked 19646 +(19646) found +[18124] Forked 19647 +(19647) found +[18123] Forked 19648 +(19648) found +[18122] Forked 19649 +(19649) found +[18121] Forked 19650 +(19650) found +[18120] Forked 19651 +(19651) found +[18119] Forked 19652 +(19652) found +[18118] Forked 19653 +(19653) found +[18117] Forked 19654 +(19654) found +[18116] Forked 19655 +(19655) found +[18115] Forked 19656 +(19656) found +[18114] Forked 19657 +(19657) found +[18113] Forked 19658 +(19658) found +[18112] Forked 19659 +(19659) found +[18111] Forked 19660 +(19660) found +[18110] Forked 19661 +(19661) found +[18109] Forked 19662 +(19662) found +[18108] Forked 19663 +(19663) found +[18107] Forked 19664 +(19664) found +[18106] Forked 19665 +[18105] Forked 19666 +(19665) found +(19666) found +[18104] Forked 19667 +[18103] Forked 19668 +(19667) found +(19668) found +[18102] Forked 19669 +[18101] Forked 19670 +(19669) found +(19670) found +[18100] Forked 19671 +[18099] Forked 19672 +(19671) found +(19672) found +[18098] Forked 19673 +[18097] Forked 19674 +(19673) found +(19674) found +[18096] Forked 19675 +[18095] Forked 19676 +(19675) found +(19676) found +[18094] Forked 19677 +[18093] Forked 19678 +(19677) found +(19678) found +[18092] Forked 19679 +[18091] Forked 19680 +(19679) found +(19680) found +[18090] Forked 19681 +[18089] Forked 19682 +(19681) found +(19682) found +[18088] Forked 19683 +[18087] Forked 19684 +(19683) found +(19684) found +[18086] Forked 19685 +[18085] Forked 19686 +(19685) found +(19686) found +[18084] Forked 19687 +[18083] Forked 19688 +(19687) found +(19688) found +[18082] Forked 19689 +[18081] Forked 19690 +(19689) found +(19690) found +[18080] Forked 19691 +[18079] Forked 19692 +(19691) found +(19692) found +[18078] Forked 19693 +[18077] Forked 19694 +(19693) found +(19694) found +[18076] Forked 19695 +[18075] Forked 19696 +(19695) found +(19696) found +[18074] Forked 19697 +[18073] Forked 19698 +(19697) found +(19698) found +[18072] Forked 19699 +[18071] Forked 19700 +(19699) found +(19700) found +[18070] Forked 19701 +[18069] Forked 19702 +(19701) found +(19702) found +[18068] Forked 19703 +[18067] Forked 19704 +(19703) found +(19704) found +[18066] Forked 19705 +[18065] Forked 19706 +(19705) found +(19706) found +[18064] Forked 19707 +[18063] Forked 19708 +(19707) found +(19708) found +[18062] Forked 19709 +(19709) found +[18061] Forked 19710 +(19710) found +[18060] Forked 19711 +(19711) found +[18059] Forked 19712 +(19712) found +[18058] Forked 19713 +(19713) found +[18057] Forked 19714 +(19714) found +[18056] Forked 19715 +(19715) found +[18055] Forked 19716 +(19716) found +[18054] Forked 19717 +(19717) found +[18053] Forked 19718 +(19718) found +[18052] Forked 19719 +(19719) found +[18051] Forked 19720 +(19720) found +[18050] Forked 19721 +(19721) found +[18049] Forked 19722 +(19722) found +[18048] Forked 19723 +(19723) found +[18047] Forked 19724 +(19724) found +[18046] Forked 19725 +(19725) found +[18045] Forked 19726 +(19726) found +[18044] Forked 19727 +(19727) found +[18043] Forked 19728 +(19728) found +[18042] Forked 19729 +(19729) found +[18041] Forked 19730 +(19730) found +[18040] Forked 19731 +(19731) found +[18039] Forked 19732 +(19732) found +[18038] Forked 19733 +(19733) found +[18037] Forked 19734 +(19734) found +[18036] Forked 19735 +(19735) found +[18035] Forked 19736 +(19736) found +[18034] Forked 19737 +(19737) found +[18033] Forked 19738 +(19738) found +[18032] Forked 19739 +(19739) found +[18031] Forked 19740 +(19740) found +[18030] Forked 19741 +(19741) found +[18029] Forked 19742 +(19742) found +[18028] Forked 19743 +(19743) found +[18027] Forked 19744 +(19744) found +[18026] Forked 19745 +(19745) found +[18025] Forked 19746 +(19746) found +[18024] Forked 19747 +(19747) found +[18023] Forked 19748 +(19748) found +[18022] Forked 19749 +[18021] Forked 19750 +(19749) found +(19750) found +[18020] Forked 19751 +[18019] Forked 19752 +(19751) found +(19752) found +[18018] Forked 19753 +[18017] Forked 19754 +(19753) found +(19754) found +[18016] Forked 19755 +[18015] Forked 19756 +(19755) found +(19756) found +[18014] Forked 19757 +[18013] Forked 19758 +(19757) found +(19758) found +[18012] Forked 19759 +[18011] Forked 19760 +(19759) found +(19760) found +[18010] Forked 19761 +[18009] Forked 19762 +(19761) found +(19762) found +[18008] Forked 19763 +[18007] Forked 19764 +(19763) found +(19764) found +[18006] Forked 19765 +[18005] Forked 19766 +(19765) found +(19766) found +[18004] Forked 19767 +[18003] Forked 19768 +(19767) found +(19768) found +[18002] Forked 19769 +[18001] Forked 19770 +(19769) found +(19770) found +[18000] Forked 19771 +[17999] Forked 19772 +(19771) found +(19772) found +[17998] Forked 19773 +[17997] Forked 19774 +(19773) found +(19774) found +[17996] Forked 19775 +[17995] Forked 19776 +(19776) found +(19775) found +[17994] Forked 19777 +(19777) found +[17993] Forked 19778 +(19778) found +[17992] Forked 19779 +(19779) found +[17991] Forked 19780 +(19780) found +[17990] Forked 19781 +(19781) found +[17989] Forked 19782 +(19782) found +[17988] Forked 19783 +(19783) found +[17987] Forked 19784 +(19784) found +[17986] Forked 19785 +(19785) found +[17985] Forked 19786 +(19786) found +[17984] Forked 19787 +(19787) found +[17983] Forked 19788 +(19788) found +[17982] Forked 19789 +(19789) found +[17981] Forked 19790 +(19790) found +[17980] Forked 19791 +(19791) found +[17979] Forked 19792 +(19792) found +[17978] Forked 19793 +(19793) found +[17977] Forked 19794 +(19794) found +[17976] Forked 19795 +(19795) found +[17975] Forked 19796 +(19796) found +[17974] Forked 19797 +(19797) found +[17973] Forked 19798 +(19798) found +[17972] Forked 19799 +(19799) found +[17971] Forked 19800 +(19800) found +[17970] Forked 19801 +(19801) found +[17969] Forked 19802 +(19802) found +[17968] Forked 19803 +(19803) found +[17967] Forked 19804 +(19804) found +[17966] Forked 19805 +(19805) found +[17965] Forked 19806 +(19806) found +[17964] Forked 19807 +(19807) found +[17963] Forked 19808 +(19808) found +[17962] Forked 19809 +(19809) found +[17961] Forked 19810 +(19810) found +[17960] Forked 19811 +(19811) found +[17959] Forked 19812 +(19812) found +[17958] Forked 19813 +(19813) found +[17957] Forked 19814 +(19814) found +[17956] Forked 19815 +(19815) found +[17955] Forked 19816 +(19816) found +[17954] Forked 19817 +(19817) found +[17953] Forked 19818 +(19818) found +[17952] Forked 19819 +(19819) found +[17951] Forked 19820 +(19820) found +[17950] Forked 19821 +(19821) found +[17949] Forked 19822 +(19822) found +[17948] Forked 19823 +(19823) found +[17947] Forked 19824 +(19824) found +[17946] Forked 19825 +(19825) found +[17945] Forked 19826 +[17944] Forked 19827 +(19826) found +(19827) found +[17943] Forked 19828 +[17942] Forked 19829 +(19828) found +(19829) found +[17941] Forked 19830 +[17940] Forked 19831 +(19830) found +(19831) found +[17939] Forked 19832 +[17938] Forked 19833 +(19832) found +(19833) found +[17937] Forked 19834 +[17936] Forked 19835 +(19834) found +(19835) found +[17935] Forked 19836 +[17934] Forked 19837 +(19836) found +(19837) found +[17933] Forked 19838 +[17932] Forked 19839 +(19838) found +(19839) found +[17931] Forked 19840 +[17930] Forked 19841 +(19840) found +(19841) found +[17929] Forked 19842 +[17928] Forked 19843 +(19842) found +(19843) found +[17927] Forked 19844 +[17926] Forked 19845 +(19844) found +(19845) found +[17925] Forked 19846 +[17924] Forked 19847 +(19846) found +(19847) found +[17923] Forked 19848 +[17922] Forked 19849 +(19848) found +(19849) found +[17921] Forked 19850 +[17920] Forked 19851 +(19850) found +(19851) found +[17919] Forked 19852 +[17918] Forked 19853 +(19852) found +(19853) found +[17917] Forked 19854 +[17916] Forked 19855 +(19854) found +(19855) found +[17915] Forked 19856 +[17914] Forked 19857 +(19856) found +(19857) found +[17913] Forked 19858 +[17912] Forked 19859 +(19858) found +(19859) found +[17911] Forked 19860 +[17910] Forked 19861 +(19860) found +(19861) found +[17909] Forked 19862 +[17908] Forked 19863 +(19862) found +(19863) found +[17907] Forked 19864 +[17906] Forked 19865 +(19864) found +(19865) found +[17905] Forked 19866 +[17904] Forked 19867 +(19866) found +(19867) found +[17903] Forked 19868 +[17902] Forked 19869 +(19869) found +(19868) found +[17901] Forked 19870 +(19870) found +[17900] Forked 19871 +(19871) found +[17899] Forked 19872 +(19872) found +[17898] Forked 19873 +(19873) found +[17897] Forked 19874 +(19874) found +[17896] Forked 19875 +(19875) found +[17895] Forked 19876 +(19876) found +[17894] Forked 19877 +(19877) found +[17893] Forked 19878 +(19878) found +[17892] Forked 19879 +(19879) found +[17891] Forked 19880 +(19880) found +[17890] Forked 19881 +(19881) found +[17889] Forked 19882 +(19882) found +[17888] Forked 19883 +(19883) found +[17887] Forked 19884 +(19884) found +[17886] Forked 19885 +(19885) found +[17885] Forked 19886 +(19886) found +[17884] Forked 19887 +(19887) found +[17883] Forked 19888 +(19888) found +[17882] Forked 19889 +(19889) found +[17881] Forked 19890 +(19890) found +[17880] Forked 19891 +(19891) found +[17879] Forked 19892 +(19892) found +[17878] Forked 19893 +(19893) found +[17877] Forked 19894 +(19894) found +[17876] Forked 19895 +(19895) found +[17875] Forked 19896 +(19896) found +[17874] Forked 19897 +(19897) found +[17873] Forked 19898 +(19898) found +[17872] Forked 19899 +(19899) found +[17871] Forked 19900 +(19900) found +[17870] Forked 19901 +(19901) found +[17869] Forked 19902 +(19902) found +[17868] Forked 19903 +(19903) found +[17867] Forked 19904 +(19904) found +[17866] Forked 19905 +(19905) found +[17865] Forked 19906 +[17864] Forked 19907 +(19906) found +(19907) found +[17863] Forked 19908 +[17862] Forked 19909 +(19908) found +(19909) found +[17861] Forked 19910 +[17860] Forked 19911 +(19910) found +(19911) found +[17859] Forked 19912 +[17858] Forked 19913 +(19912) found +(19913) found +[17857] Forked 19914 +[17856] Forked 19915 +(19914) found +(19915) found +[17855] Forked 19916 +[17854] Forked 19917 +(19916) found +(19917) found +[17853] Forked 19918 +[17852] Forked 19919 +(19918) found +(19919) found +[17851] Forked 19920 +[17850] Forked 19921 +(19920) found +(19921) found +[17849] Forked 19922 +[17848] Forked 19923 +(19922) found +(19923) found +[17847] Forked 19924 +[17846] Forked 19925 +(19924) found +(19925) found +[17845] Forked 19926 +[17844] Forked 19927 +(19926) found +(19927) found +[17843] Forked 19928 +[17842] Forked 19929 +(19928) found +(19929) found +[17841] Forked 19930 +[17840] Forked 19931 +(19930) found +(19931) found +[17839] Forked 19932 +[17838] Forked 19933 +(19932) found +(19933) found +[17837] Forked 19934 +[17836] Forked 19935 +(19934) found +(19935) found +[17835] Forked 19936 +[17834] Forked 19937 +(19936) found +(19937) found +[17833] Forked 19938 +[17832] Forked 19939 +(19938) found +(19939) found +[17831] Forked 19940 +[17830] Forked 19941 +(19940) found +(19941) found +[17829] Forked 19942 +[17828] Forked 19943 +(19942) found +(19943) found +[17827] Forked 19944 +[17826] Forked 19945 +(19944) found +(19945) found +[17825] Forked 19946 +[17824] Forked 19947 +(19946) found +(19947) found +[17823] Forked 19948 +[17822] Forked 19949 +(19948) found +(19949) found +[17821] Forked 19950 +(19950) found +[17820] Forked 19951 +(19951) found +[17819] Forked 19952 +(19952) found +[17818] Forked 19953 +(19953) found +[17817] Forked 19954 +(19954) found +[17816] Forked 19955 +(19955) found +[17815] Forked 19956 +(19956) found +[17814] Forked 19957 +(19957) found +[17813] Forked 19958 +(19958) found +[17812] Forked 19959 +(19959) found +[17811] Forked 19960 +(19960) found +[17810] Forked 19961 +(19961) found +[17809] Forked 19962 +(19962) found +[17808] Forked 19963 +(19963) found +[17807] Forked 19964 +(19964) found +[17806] Forked 19965 +(19965) found +[17805] Forked 19966 +(19966) found +[17804] Forked 19967 +(19967) found +[17803] Forked 19968 +(19968) found +[17802] Forked 19969 +(19969) found +[17801] Forked 19970 +(19970) found +[17800] Forked 19971 +(19971) found +[17799] Forked 19972 +(19972) found +[17798] Forked 19973 +(19973) found +[17797] Forked 19974 +(19974) found +[17796] Forked 19975 +(19975) found +[17795] Forked 19976 +(19976) found +[17794] Forked 19977 +(19977) found +[17793] Forked 19978 +(19978) found +[17792] Forked 19979 +(19979) found +[17791] Forked 19980 +(19980) found +[17790] Forked 19981 +(19981) found +[17789] Forked 19982 +(19982) found +[17788] Forked 19983 +(19983) found +[17787] Forked 19984 +(19984) found +[17786] Forked 19985 +(19985) found +[17785] Forked 19986 +(19986) found +[17784] Forked 19987 +(19987) found +[17783] Forked 19988 +(19988) found +[17782] Forked 19989 +[17781] Forked 19990 +(19989) found +(19990) found +[17780] Forked 19991 +[17779] Forked 19992 +(19991) found +(19992) found +[17778] Forked 19993 +[17777] Forked 19994 +(19993) found +(19994) found +[17776] Forked 19995 +[17775] Forked 19996 +(19995) found +(19996) found +[17774] Forked 19997 +[17773] Forked 19998 +(19997) found +(19998) found +[17772] Forked 19999 +[17771] Forked 20000 +(19999) found +(20000) found +[17770] Forked 20001 +[17769] Forked 20002 +(20001) found +(20002) found +[17768] Forked 20003 +[17767] Forked 20004 +(20003) found +(20004) found +[17766] Forked 20005 +[17765] Forked 20006 +(20005) found +(20006) found +[17764] Forked 20007 +[17763] Forked 20008 +(20007) found +(20008) found +[17762] Forked 20009 +[17761] Forked 20010 +(20009) found +(20010) found +[17760] Forked 20011 +[17759] Forked 20012 +(20011) found +(20012) found +[17758] Forked 20013 +[17757] Forked 20014 +(20013) found +(20014) found +[17756] Forked 20015 +[17755] Forked 20016 +(20015) found +(20016) found +[17754] Forked 20017 +[17753] Forked 20018 +(20017) found +(20018) found +[17752] Forked 20019 +[17751] Forked 20020 +(20019) found +(20020) found +[17750] Forked 20021 +[17749] Forked 20022 +(20021) found +(20022) found +[17748] Forked 20023 +[17747] Forked 20024 +(20023) found +(20024) found +[17746] Forked 20025 +[17745] Forked 20026 +(20025) found +(20026) found +[17744] Forked 20027 +[17743] Forked 20029 +(20027) found +(20029) found +[17742] Forked 20030 +(20030) found +[17741] Forked 20031 +(20031) found +[17740] Forked 20032 +(20032) found +[17739] Forked 20033 +(20033) found +[17738] Forked 20034 +(20034) found +[17737] Forked 20035 +(20035) found +[17736] Forked 20036 +(20036) found +[17735] Forked 20037 +(20037) found +[17734] Forked 20038 +(20038) found +[17733] Forked 20039 +(20039) found +[17732] Forked 20040 +(20040) found +[17731] Forked 20041 +(20041) found +[17730] Forked 20042 +(20042) found +[17729] Forked 20043 +(20043) found +[17728] Forked 20044 +(20044) found +[17727] Forked 20045 +(20045) found +[17726] Forked 20046 +(20046) found +[17725] Forked 20047 +(20047) found +[17724] Forked 20048 +(20048) found +[17723] Forked 20049 +(20049) found +[17722] Forked 20050 +(20050) found +[17721] Forked 20051 +(20051) found +[17720] Forked 20052 +(20052) found +[17719] Forked 20053 +(20053) found +[17718] Forked 20054 +(20054) found +[17717] Forked 20055 +(20055) found +[17716] Forked 20056 +(20056) found +[17715] Forked 20057 +(20057) found +[17714] Forked 20058 +(20058) found +[17713] Forked 20059 +(20059) found +[17712] Forked 20060 +(20060) found +[17711] Forked 20061 +(20061) found +[17710] Forked 20062 +(20062) found +[17709] Forked 20063 +(20063) found +[17708] Forked 20064 +(20064) found +[17707] Forked 20065 +(20065) found +[17706] Forked 20066 +(20066) found +[17705] Forked 20067 +(20067) found +[17704] Forked 20068 +(20068) found +[17703] Forked 20069 +(20069) found +[17702] Forked 20070 +(20070) found +[17701] Forked 20071 +(20071) found +[17700] Forked 20072 +(20072) found +[17699] Forked 20073 +(20073) found +[17698] Forked 20074 +(20074) found +[17697] Forked 20075 +(20075) found +[17696] Forked 20076 +(20076) found +[17695] Forked 20077 +(20077) found +[17694] Forked 20078 +(20078) found +[17693] Forked 20079 +(20079) found +[17692] Forked 20080 +(20080) found +[17691] Forked 20081 +(20081) found +[17690] Forked 20082 +(20082) found +[17689] Forked 20083 +(20083) found +[17688] Forked 20084 +(20084) found +[17687] Forked 20085 +(20085) found +[17686] Forked 20086 +(20086) found +[17685] Forked 20087 +(20087) found +[17684] Forked 20088 +(20088) found +[17683] Forked 20089 +(20089) found +[17682] Forked 20090 +(20090) found +[17681] Forked 20091 +(20091) found +[17680] Forked 20092 +(20092) found +[17679] Forked 20093 +(20093) found +[17678] Forked 20094 +(20094) found +[17677] Forked 20095 +(20095) found +[17676] Forked 20096 +(20096) found +[17675] Forked 20097 +(20097) found +[17674] Forked 20098 +(20098) found +[17673] Forked 20099 +(20099) found +[17672] Forked 20100 +(20100) found +[17671] Forked 20101 +(20101) found +[17670] Forked 20102 +(20102) found +[17669] Forked 20103 +[17668] Forked 20104 +(20103) found +(20104) found +[17667] Forked 20105 +[17666] Forked 20106 +(20105) found +(20106) found +[17665] Forked 20107 +[17664] Forked 20108 +(20107) found +(20108) found +[17663] Forked 20109 +[17662] Forked 20110 +(20109) found +(20110) found +[17661] Forked 20111 +[17660] Forked 20112 +(20111) found +(20112) found +[17659] Forked 20113 +[17658] Forked 20114 +(20113) found +(20114) found +[17657] Forked 20115 +[17656] Forked 20116 +(20115) found +(20116) found +[17655] Forked 20117 +[17654] Forked 20118 +(20117) found +(20118) found +[17653] Forked 20119 +[17652] Forked 20120 +(20119) found +(20120) found +[17651] Forked 20121 +[17650] Forked 20122 +(20121) found +(20122) found +[17649] Forked 20123 +[17648] Forked 20124 +(20123) found +(20124) found +[17647] Forked 20125 +[17646] Forked 20126 +(20125) found +(20126) found +[17645] Forked 20127 +[17644] Forked 20128 +(20127) found +(20128) found +[17643] Forked 20129 +[17642] Forked 20130 +(20129) found +(20130) found +[17641] Forked 20131 +[17640] Forked 20132 +(20131) found +(20132) found +[17639] Forked 20133 +[17638] Forked 20134 +(20133) found +(20134) found +[17637] Forked 20135 +[17636] Forked 20136 +(20135) found +(20136) found +[17635] Forked 20137 +[17634] Forked 20138 +(20137) found +(20138) found +[17633] Forked 20139 +[17632] Forked 20140 +(20139) found +(20140) found +[17631] Forked 20141 +[17630] Forked 20142 +(20141) found +(20142) found +[17629] Forked 20143 +[17628] Forked 20144 +(20143) found +(20144) found +[17627] Forked 20145 +[17626] Forked 20146 +(20145) found +(20146) found +[17625] Forked 20147 +[17624] Forked 20148 +(20147) found +(20148) found +[17623] Forked 20149 +[17622] Forked 20150 +(20150) found +(20149) found +[17621] Forked 20151 +(20151) found +[17620] Forked 20152 +(20152) found +[17619] Forked 20153 +(20153) found +[17618] Forked 20154 +(20154) found +[17617] Forked 20155 +(20155) found +[17616] Forked 20156 +(20156) found +[17615] Forked 20157 +(20157) found +[17614] Forked 20158 +(20158) found +[17613] Forked 20159 +(20159) found +[17612] Forked 20160 +(20160) found +[17611] Forked 20161 +(20161) found +[17610] Forked 20162 +(20162) found +[17609] Forked 20163 +(20163) found +[17608] Forked 20164 +(20164) found +[17607] Forked 20165 +(20165) found +[17606] Forked 20166 +(20166) found +[17605] Forked 20167 +(20167) found +[17604] Forked 20168 +(20168) found +[17603] Forked 20169 +(20169) found +[17602] Forked 20170 +(20170) found +[17601] Forked 20171 +(20171) found +[17600] Forked 20172 +(20172) found +[17599] Forked 20173 +(20173) found +[17598] Forked 20174 +(20174) found +[17597] Forked 20175 +(20175) found +[17596] Forked 20176 +(20176) found +[17595] Forked 20177 +(20177) found +[17594] Forked 20178 +(20178) found +[17593] Forked 20179 +(20179) found +[17592] Forked 20180 +(20180) found +[17591] Forked 20181 +(20181) found +[17590] Forked 20182 +(20182) found +[17589] Forked 20183 +(20183) found +[17588] Forked 20184 +(20184) found +[17587] Forked 20185 +(20185) found +[17586] Forked 20186 +(20186) found +[17585] Forked 20187 +(20187) found +[17584] Forked 20188 +(20188) found +[17583] Forked 20189 +(20189) found +[17582] Forked 20190 +(20190) found +[17581] Forked 20191 +(20191) found +[17580] Forked 20192 +(20192) found +[17579] Forked 20193 +(20193) found +[17578] Forked 20194 +(20194) found +[17577] Forked 20195 +(20195) found +[17576] Forked 20196 +(20196) found +[17575] Forked 20197 +(20197) found +[17574] Forked 20198 +(20198) found +[17573] Forked 20199 +(20199) found +[17572] Forked 20200 +(20200) found +[17571] Forked 20201 +[17570] Forked 20202 +(20201) found +(20202) found +[17569] Forked 20203 +[17568] Forked 20204 +(20203) found +(20204) found +[17567] Forked 20205 +[17566] Forked 20206 +(20205) found +(20206) found +[17565] Forked 20207 +(20207) found +[17564] Forked 20208 +(20208) found +[17563] Forked 20209 +(20209) found +[17562] Forked 20210 +(20210) found +[17561] Forked 20211 +(20211) found +[17560] Forked 20212 +(20212) found +[17559] Forked 20213 +(20213) found +[17558] Forked 20214 +(20214) found +[17557] Forked 20215 +(20215) found +[17556] Forked 20216 +(20216) found +[17555] Forked 20217 +(20217) found +[17554] Forked 20218 +(20218) found +[17553] Forked 20219 +(20219) found +[17552] Forked 20220 +(20220) found +[17551] Forked 20221 +(20221) found +[17550] Forked 20222 +(20222) found +[17549] Forked 20223 +(20223) found +[17548] Forked 20224 +(20224) found +[17547] Forked 20225 +(20225) found +[17546] Forked 20226 +(20226) found +[17545] Forked 20227 +(20227) found +[17544] Forked 20228 +(20228) found +[17543] Forked 20229 +(20229) found +[17542] Forked 20230 +(20230) found +[17541] Forked 20231 +(20231) found +[17540] Forked 20232 +(20232) found +[17539] Forked 20233 +(20233) found +[17538] Forked 20234 +(20234) found +[17537] Forked 20235 +(20235) found +[17536] Forked 20236 +(20236) found +[17535] Forked 20237 +(20237) found +[17534] Forked 20238 +(20238) found +[17533] Forked 20239 +(20239) found +[17532] Forked 20240 +(20240) found +[17531] Forked 20241 +(20241) found +[17530] Forked 20242 +[17529] Forked 20243 +(20242) found +(20243) found +[17528] Forked 20244 +[17527] Forked 20245 +(20244) found +(20245) found +[17526] Forked 20246 +[17525] Forked 20247 +(20246) found +(20247) found +[17524] Forked 20248 +[17523] Forked 20249 +(20248) found +(20249) found +[17522] Forked 20250 +[17521] Forked 20251 +(20250) found +(20251) found +[17520] Forked 20252 +[17519] Forked 20253 +(20252) found +(20253) found +[17518] Forked 20254 +[17517] Forked 20255 +(20254) found +(20255) found +[17516] Forked 20256 +[17515] Forked 20257 +(20256) found +(20257) found +[17514] Forked 20258 +[17513] Forked 20259 +(20258) found +(20259) found +[17512] Forked 20260 +[17511] Forked 20261 +(20260) found +(20261) found +[17510] Forked 20262 +[17509] Forked 20263 +(20262) found +(20263) found +[17508] Forked 20264 +[17507] Forked 20265 +(20264) found +(20265) found +[17506] Forked 20266 +[17505] Forked 20267 +(20266) found +(20267) found +[17504] Forked 20268 +[17503] Forked 20269 +(20268) found +(20269) found +[17502] Forked 20270 +[17501] Forked 20271 +(20270) found +(20271) found +[17500] Forked 20272 +[17499] Forked 20273 +(20272) found +(20273) found +[17498] Forked 20274 +[17497] Forked 20275 +(20274) found +(20275) found +[17496] Forked 20276 +[17495] Forked 20277 +(20276) found +(20277) found +[17494] Forked 20278 +[17493] Forked 20279 +(20278) found +(20279) found +[17492] Forked 20280 +[17491] Forked 20281 +(20280) found +(20281) found +[17490] Forked 20282 +[17489] Forked 20283 +(20282) found +(20283) found +[17488] Forked 20284 +[17487] Forked 20285 +(20284) found +(20285) found +[17486] Forked 20286 +[17485] Forked 20287 +(20286) found +(20287) found +[17484] Forked 20288 +[17483] Forked 20289 +(20288) found +(20289) found +[17482] Forked 20290 +[17481] Forked 20291 +(20290) found +(20291) found +[17480] Forked 20292 +[17479] Forked 20293 +(20292) found +(20293) found +[17478] Forked 20294 +[17477] Forked 20295 +(20294) found +(20295) found +[17476] Forked 20296 +[17475] Forked 20297 +(20296) found +(20297) found +[17474] Forked 20298 +[17473] Forked 20299 +(20298) found +(20299) found +[17472] Forked 20300 +[17471] Forked 20301 +(20300) found +(20301) found +[17470] Forked 20302 +[17469] Forked 20303 +(20302) found +(20303) found +[17468] Forked 20304 +[17467] Forked 20305 +(20304) found +(20305) found +[17466] Forked 20306 +[17465] Forked 20307 +(20306) found +(20307) found +[17464] Forked 20308 +[17463] Forked 20309 +(20308) found +(20309) found +[17462] Forked 20310 +[17461] Forked 20311 +(20310) found +(20311) found +[17460] Forked 20312 +[17459] Forked 20313 +(20312) found +(20313) found +[17458] Forked 20314 +[17457] Forked 20315 +(20314) found +(20315) found +[17456] Forked 20316 +[17455] Forked 20317 +(20316) found +(20317) found +[17454] Forked 20318 +[17453] Forked 20319 +(20318) found +(20319) found +[17452] Forked 20320 +[17451] Forked 20321 +(20320) found +(20321) found +[17450] Forked 20322 +[17449] Forked 20323 +(20322) found +(20323) found +[17448] Forked 20324 +[17447] Forked 20325 +(20324) found +(20325) found +[17446] Forked 20326 +[17445] Forked 20327 +(20326) found +(20327) found +[17444] Forked 20328 +[17443] Forked 20329 +(20328) found +(20329) found +[17442] Forked 20330 +[17441] Forked 20331 +(20330) found +(20331) found +[17440] Forked 20332 +[17439] Forked 20333 +(20332) found +(20333) found +[17438] Forked 20334 +(20334) found +[17437] Forked 20335 +(20335) found +[17436] Forked 20336 +(20336) found +[17435] Forked 20337 +(20337) found +[17434] Forked 20338 +(20338) found +[17433] Forked 20339 +(20339) found +[17432] Forked 20340 +(20340) found +[17431] Forked 20341 +(20341) found +[17430] Forked 20342 +(20342) found +[17429] Forked 20343 +(20343) found +[17428] Forked 20344 +(20344) found +[17427] Forked 20345 +(20345) found +[17426] Forked 20346 +(20346) found +[17425] Forked 20347 +(20347) found +[17424] Forked 20348 +(20348) found +[17423] Forked 20349 +(20349) found +[17422] Forked 20350 +(20350) found +[17421] Forked 20351 +(20351) found +[17420] Forked 20352 +(20352) found +[17419] Forked 20353 +(20353) found +[17418] Forked 20354 +(20354) found +[17417] Forked 20355 +(20355) found +[17416] Forked 20356 +(20356) found +[17415] Forked 20357 +(20357) found +[17414] Forked 20358 +(20358) found +[17413] Forked 20359 +(20359) found +[17412] Forked 20360 +(20360) found +[17411] Forked 20361 +(20361) found +[17410] Forked 20362 +(20362) found +[17409] Forked 20363 +(20363) found +[17408] Forked 20364 +(20364) found +[17407] Forked 20365 +(20365) found +[17406] Forked 20366 +(20366) found +[17405] Forked 20367 +(20367) found +[17404] Forked 20368 +(20368) found +[17403] Forked 20369 +(20369) found +[17402] Forked 20370 +(20370) found +[17401] Forked 20371 +(20371) found +[17400] Forked 20372 +(20372) found +[17399] Forked 20373 +[17398] Forked 20374 +(20373) found +(20374) found +[17397] Forked 20375 +[17396] Forked 20376 +(20375) found +(20376) found +[17395] Forked 20377 +[17394] Forked 20378 +(20377) found +(20378) found +[17393] Forked 20379 +[17392] Forked 20380 +(20379) found +(20380) found +[17391] Forked 20381 +[17390] Forked 20382 +(20381) found +(20382) found +[17389] Forked 20383 +[17388] Forked 20384 +(20383) found +(20384) found +[17387] Forked 20385 +[17386] Forked 20386 +(20385) found +(20386) found +[17385] Forked 20387 +[17384] Forked 20388 +(20387) found +(20388) found +[17383] Forked 20389 +[17382] Forked 20390 +(20389) found +(20390) found +[17381] Forked 20391 +[17380] Forked 20392 +(20391) found +(20392) found +[17379] Forked 20393 +[17378] Forked 20394 +(20393) found +(20394) found +[17377] Forked 20395 +[17376] Forked 20396 +(20395) found +(20396) found +[17375] Forked 20397 +[17374] Forked 20398 +(20397) found +(20398) found +[17373] Forked 20399 +[17372] Forked 20400 +(20399) found +(20400) found +[17371] Forked 20401 +[17370] Forked 20402 +(20401) found +(20402) found +[17369] Forked 20403 +[17368] Forked 20404 +(20403) found +(20404) found +[17367] Forked 20405 +[17366] Forked 20406 +(20405) found +(20406) found +[17365] Forked 20407 +[17364] Forked 20408 +(20407) found +(20408) found +[17363] Forked 20409 +[17362] Forked 20410 +(20409) found +(20410) found +[17361] Forked 20411 +[17360] Forked 20412 +(20411) found +(20412) found +[17359] Forked 20413 +[17358] Forked 20414 +(20413) found +(20414) found +[17357] Forked 20415 +[17356] Forked 20416 +(20415) found +(20416) found +[17355] Forked 20417 +(20417) found +[17354] Forked 20418 +(20418) found +[17353] Forked 20419 +(20419) found +[17352] Forked 20420 +(20420) found +[17351] Forked 20421 +(20421) found +[17350] Forked 20422 +(20422) found +[17349] Forked 20423 +(20423) found +[17348] Forked 20424 +(20424) found +[17347] Forked 20425 +(20425) found +[17346] Forked 20426 +(20426) found +[17345] Forked 20427 +(20427) found +[17344] Forked 20428 +(20428) found +[17343] Forked 20429 +(20429) found +[17342] Forked 20430 +(20430) found +[17341] Forked 20431 +(20431) found +[17340] Forked 20432 +(20432) found +[17339] Forked 20433 +(20433) found +[17338] Forked 20434 +(20434) found +[17337] Forked 20435 +(20435) found +[17336] Forked 20436 +(20436) found +[17335] Forked 20437 +(20437) found +[17334] Forked 20438 +(20438) found +[17333] Forked 20439 +(20439) found +[17332] Forked 20440 +(20440) found +[17331] Forked 20441 +(20441) found +[17330] Forked 20442 +(20442) found +[17329] Forked 20443 +(20443) found +[17328] Forked 20444 +(20444) found +[17327] Forked 20445 +(20445) found +[17326] Forked 20446 +(20446) found +[17325] Forked 20447 +(20447) found +[17324] Forked 20448 +(20448) found +[17323] Forked 20449 +(20449) found +[17322] Forked 20450 +(20450) found +[17321] Forked 20451 +(20451) found +[17320] Forked 20452 +(20452) found +[17319] Forked 20453 +(20453) found +[17318] Forked 20454 +(20454) found +[17317] Forked 20455 +(20455) found +[17316] Forked 20456 +[17315] Forked 20457 +(20456) found +(20457) found +[17314] Forked 20458 +[17313] Forked 20459 +(20458) found +(20459) found +[17312] Forked 20460 +[17311] Forked 20461 +(20460) found +(20461) found +[17310] Forked 20462 +[17309] Forked 20463 +(20462) found +(20463) found +[17308] Forked 20464 +[17307] Forked 20465 +(20464) found +(20465) found +[17306] Forked 20466 +[17305] Forked 20467 +(20466) found +(20467) found +[17304] Forked 20468 +[17303] Forked 20469 +(20468) found +(20469) found +[17302] Forked 20470 +[17301] Forked 20471 +(20470) found +(20471) found +[17300] Forked 20472 +[17299] Forked 20473 +(20472) found +(20473) found +[17298] Forked 20474 +[17297] Forked 20475 +(20474) found +(20475) found +[17296] Forked 20476 +[17295] Forked 20477 +(20476) found +(20477) found +[17294] Forked 20478 +[17293] Forked 20479 +(20478) found +(20479) found +[17292] Forked 20480 +[17291] Forked 20481 +(20480) found +(20481) found +[17290] Forked 20482 +[17289] Forked 20483 +(20482) found +(20483) found +[17288] Forked 20484 +[17287] Forked 20485 +(20484) found +(20485) found +[17286] Forked 20486 +[17285] Forked 20487 +(20486) found +(20487) found +[17284] Forked 20488 +[17283] Forked 20489 +(20488) found +(20489) found +[17282] Forked 20490 +[17281] Forked 20491 +(20490) found +(20491) found +[17280] Forked 20492 +[17279] Forked 20493 +(20492) found +(20493) found +[17278] Forked 20494 +(20494) found +[17277] Forked 20495 +[17276] Forked 20496 +(20495) found +(20496) found +[17275] Forked 20497 +[17274] Forked 20498 +(20497) found +(20498) found +[17273] Forked 20499 +(20499) found +[17272] Forked 20500 +(20500) found +[17271] Forked 20501 +(20501) found +[17270] Forked 20502 +(20502) found +[17269] Forked 20503 +(20503) found +[17268] Forked 20504 +(20504) found +[17267] Forked 20505 +(20505) found +[17266] Forked 20506 +(20506) found +[17265] Forked 20507 +(20507) found +[17264] Forked 20508 +(20508) found +[17263] Forked 20509 +(20509) found +[17262] Forked 20510 +(20510) found +[17261] Forked 20511 +(20511) found +[17260] Forked 20512 +(20512) found +[17259] Forked 20513 +(20513) found +[17258] Forked 20514 +(20514) found +[17257] Forked 20515 +(20515) found +[17256] Forked 20516 +(20516) found +[17255] Forked 20517 +(20517) found +[17254] Forked 20518 +(20518) found +[17253] Forked 20519 +(20519) found +[17252] Forked 20520 +(20520) found +[17251] Forked 20521 +(20521) found +[17250] Forked 20522 +(20522) found +[17249] Forked 20523 +(20523) found +[17248] Forked 20524 +(20524) found +[17247] Forked 20525 +(20525) found +[17246] Forked 20526 +(20526) found +[17245] Forked 20527 +(20527) found +[17244] Forked 20528 +(20528) found +[17243] Forked 20529 +(20529) found +[17242] Forked 20530 +(20530) found +[17241] Forked 20531 +(20531) found +[17240] Forked 20532 +(20532) found +[17239] Forked 20533 +(20533) found +[17238] Forked 20534 +(20534) found +[17237] Forked 20535 +(20535) found +[17236] Forked 20536 +(20536) found +[17235] Forked 20537 +(20537) found +[17234] Forked 20538 +[17233] Forked 20539 +(20538) found +(20539) found +[17232] Forked 20540 +[17231] Forked 20541 +(20540) found +(20541) found +[17230] Forked 20542 +[17229] Forked 20543 +(20542) found +(20543) found +[17228] Forked 20544 +[17227] Forked 20545 +(20544) found +(20545) found +[17226] Forked 20546 +[17225] Forked 20547 +(20546) found +(20547) found +[17224] Forked 20548 +[17223] Forked 20549 +(20548) found +(20549) found +[17222] Forked 20550 +[17221] Forked 20551 +(20550) found +(20551) found +[17220] Forked 20552 +[17219] Forked 20553 +(20552) found +(20553) found +[17218] Forked 20554 +[17217] Forked 20555 +(20554) found +(20555) found +[17216] Forked 20556 +[17215] Forked 20557 +(20556) found +(20557) found +[17214] Forked 20558 +[17213] Forked 20559 +(20558) found +(20559) found +[17212] Forked 20560 +[17211] Forked 20561 +(20560) found +(20561) found +[17210] Forked 20562 +[17209] Forked 20563 +(20562) found +(20563) found +[17208] Forked 20564 +[17207] Forked 20565 +(20564) found +(20565) found +[17206] Forked 20566 +[17205] Forked 20567 +(20566) found +(20567) found +[17204] Forked 20568 +[17203] Forked 20569 +(20568) found +(20569) found +[17202] Forked 20570 +[17201] Forked 20571 +(20570) found +(20571) found +[17200] Forked 20572 +[17199] Forked 20573 +(20572) found +(20573) found +[17198] Forked 20574 +[17197] Forked 20575 +(20574) found +(20575) found +[17196] Forked 20576 +[17195] Forked 20577 +(20576) found +(20577) found +[17194] Forked 20578 +[17193] Forked 20579 +(20578) found +(20579) found +[17192] Forked 20580 +[17191] Forked 20581 +(20580) found +(20581) found +[17190] Forked 20582 +[17189] Forked 20583 +(20582) found +(20583) found +[17188] Forked 20584 +[17187] Forked 20585 +(20584) found +(20585) found +[17186] Forked 20586 +[17185] Forked 20587 +(20586) found +(20587) found +[17184] Forked 20588 +[17183] Forked 20589 +(20588) found +(20589) found +[17182] Forked 20590 +[17181] Forked 20591 +(20590) found +(20591) found +[17180] Forked 20592 +[17179] Forked 20593 +(20592) found +(20593) found +[17178] Forked 20594 +[17177] Forked 20595 +(20594) found +(20595) found +[17176] Forked 20596 +[17175] Forked 20597 +(20596) found +(20597) found +[17174] Forked 20598 +[17173] Forked 20599 +(20598) found +(20599) found +[17172] Forked 20600 +[17171] Forked 20601 +(20600) found +(20601) found +[17170] Forked 20602 +[17169] Forked 20603 +(20602) found +(20603) found +[17168] Forked 20604 +[17167] Forked 20605 +(20604) found +(20605) found +[17166] Forked 20606 +[17165] Forked 20607 +(20606) found +(20607) found +[17164] Forked 20608 +[17163] Forked 20609 +(20608) found +(20609) found +[17162] Forked 20610 +[17161] Forked 20611 +(20610) found +(20611) found +[17160] Forked 20612 +[17159] Forked 20613 +(20612) found +(20613) found +[17158] Forked 20614 +[17157] Forked 20615 +(20614) found +(20615) found +[17156] Forked 20616 +[17155] Forked 20617 +(20616) found +(20617) found +[17154] Forked 20618 +[17153] Forked 20619 +(20618) found +(20619) found +[17152] Forked 20620 +[17151] Forked 20621 +(20620) found +(20621) found +[17150] Forked 20622 +[17149] Forked 20623 +(20622) found +(20623) found +[17148] Forked 20624 +[17147] Forked 20625 +(20624) found +(20625) found +[17146] Forked 20626 +[17145] Forked 20627 +(20626) found +(20627) found +[17144] Forked 20628 +[17143] Forked 20629 +(20628) found +(20629) found +[17142] Forked 20630 +(20630) found +[17141] Forked 20631 +(20631) found +[17140] Forked 20632 +(20632) found +[17139] Forked 20633 +(20633) found +[17138] Forked 20634 +(20634) found +[17137] Forked 20635 +(20635) found +[17136] Forked 20636 +(20636) found +[17135] Forked 20637 +(20637) found +[17134] Forked 20638 +(20638) found +[17133] Forked 20639 +(20639) found +[17132] Forked 20640 +(20640) found +[17131] Forked 20641 +(20641) found +[17130] Forked 20642 +(20642) found +[17129] Forked 20643 +(20643) found +[17128] Forked 20644 +(20644) found +[17127] Forked 20645 +(20645) found +[17126] Forked 20646 +(20646) found +[17125] Forked 20647 +(20647) found +[17124] Forked 20648 +(20648) found +[17123] Forked 20649 +(20649) found +[17122] Forked 20650 +(20650) found +[17121] Forked 20651 +(20651) found +[17120] Forked 20652 +(20652) found +[17119] Forked 20653 +(20653) found +[17118] Forked 20654 +(20654) found +[17117] Forked 20655 +(20655) found +[17116] Forked 20656 +(20656) found +[17115] Forked 20657 +(20657) found +[17114] Forked 20658 +(20658) found +[17113] Forked 20659 +(20659) found +[17112] Forked 20660 +(20660) found +[17111] Forked 20661 +(20661) found +[17110] Forked 20662 +(20662) found +[17109] Forked 20663 +(20663) found +[17108] Forked 20664 +[17107] Forked 20665 +(20664) found +(20665) found +[17106] Forked 20666 +[17105] Forked 20667 +(20666) found +(20667) found +[17104] Forked 20668 +[17103] Forked 20669 +(20668) found +(20669) found +[17102] Forked 20670 +[17101] Forked 20671 +(20670) found +(20671) found +[17100] Forked 20672 +[17099] Forked 20673 +(20672) found +(20673) found +[17098] Forked 20674 +[17097] Forked 20675 +(20674) found +(20675) found +[17096] Forked 20676 +[17095] Forked 20677 +(20676) found +(20677) found +[17094] Forked 20678 +[17093] Forked 20679 +(20678) found +(20679) found +[17092] Forked 20680 +[17091] Forked 20681 +(20680) found +(20681) found +[17090] Forked 20682 +[17089] Forked 20683 +(20682) found +(20683) found +[17088] Forked 20684 +[17087] Forked 20685 +(20684) found +(20685) found +[17086] Forked 20686 +[17085] Forked 20687 +(20686) found +(20687) found +[17084] Forked 20688 +[17083] Forked 20689 +(20688) found +(20689) found +[17082] Forked 20690 +[17081] Forked 20691 +(20690) found +(20691) found +[17080] Forked 20692 +[17079] Forked 20693 +(20692) found +(20693) found +[17078] Forked 20694 +[17077] Forked 20695 +(20694) found +(20695) found +[17076] Forked 20696 +[17075] Forked 20697 +(20696) found +(20697) found +[17074] Forked 20698 +[17073] Forked 20699 +(20698) found +(20699) found +[17072] Forked 20700 +[17071] Forked 20701 +(20700) found +(20701) found +[17070] Forked 20702 +[17069] Forked 20703 +(20702) found +(20703) found +[17068] Forked 20704 +[17067] Forked 20706 +(20704) found +(20706) found +[17066] Forked 20707 +(20707) found +[17065] Forked 20708 +(20708) found +[17064] Forked 20709 +(20709) found +[17063] Forked 20710 +(20710) found +[17062] Forked 20711 +(20711) found +[17061] Forked 20712 +(20712) found +[17060] Forked 20713 +(20713) found +[17059] Forked 20714 +(20714) found +[17058] Forked 20715 +(20715) found +[17057] Forked 20716 +(20716) found +[17056] Forked 20717 +(20717) found +[17055] Forked 20718 +(20718) found +[17054] Forked 20719 +(20719) found +[17053] Forked 20720 +(20720) found +[17052] Forked 20721 +(20721) found +[17051] Forked 20722 +(20722) found +[17050] Forked 20723 +(20723) found +[17049] Forked 20724 +(20724) found +[17048] Forked 20725 +(20725) found +[17047] Forked 20726 +(20726) found +[17046] Forked 20727 +(20727) found +[17045] Forked 20728 +(20728) found +[17044] Forked 20729 +(20729) found +[17043] Forked 20730 +(20730) found +[17042] Forked 20731 +(20731) found +[17041] Forked 20732 +(20732) found +[17040] Forked 20733 +(20733) found +[17039] Forked 20734 +(20734) found +[17038] Forked 20735 +(20735) found +[17037] Forked 20736 +(20736) found +[17036] Forked 20737 +(20737) found +[17035] Forked 20738 +(20738) found +[17034] Forked 20739 +(20739) found +[17033] Forked 20740 +(20740) found +[17032] Forked 20741 +(20741) found +[17031] Forked 20742 +(20742) found +[17030] Forked 20743 +(20743) found +[17029] Forked 20744 +(20744) found +[17028] Forked 20745 +(20745) found +[17027] Forked 20746 +(20746) found +[17026] Forked 20747 +(20747) found +[17025] Forked 20748 +(20748) found +[17024] Forked 20749 +(20749) found +[17023] Forked 20750 +(20750) found +[17022] Forked 20751 +(20751) found +[17021] Forked 20752 +(20752) found +[17020] Forked 20753 +(20753) found +[17019] Forked 20754 +(20754) found +[17018] Forked 20755 +(20755) found +[17017] Forked 20756 +(20756) found +[17016] Forked 20757 +(20757) found +[17015] Forked 20758 +(20758) found +[17014] Forked 20759 +(20759) found +[17013] Forked 20760 +(20760) found +[17012] Forked 20761 +(20761) found +[17011] Forked 20762 +(20762) found +[17010] Forked 20763 +(20763) found +[17009] Forked 20764 +(20764) found +[17008] Forked 20765 +(20765) found +[17007] Forked 20766 +(20766) found +[17006] Forked 20767 +(20767) found +[17005] Forked 20768 +(20768) found +[17004] Forked 20769 +(20769) found +[17003] Forked 20770 +(20770) found +[17002] Forked 20771 +(20771) found +[17001] Forked 20772 +(20772) found +[17000] Forked 20773 +(20773) found +[16999] Forked 20774 +(20774) found +[16998] Forked 20775 +(20775) found +[16997] Forked 20776 +(20776) found +[16996] Forked 20777 +(20777) found +[16995] Forked 20778 +(20778) found +[16994] Forked 20779 +(20779) found +[16993] Forked 20780 +(20780) found +[16992] Forked 20781 +(20781) found +[16991] Forked 20782 +[16990] Forked 20783 +(20782) found +(20783) found +[16989] Forked 20784 +[16988] Forked 20785 +(20784) found +(20785) found +[16987] Forked 20786 +[16986] Forked 20787 +(20786) found +(20787) found +[16985] Forked 20788 +[16984] Forked 20789 +(20788) found +(20789) found +[16983] Forked 20790 +[16982] Forked 20791 +(20790) found +(20791) found +[16981] Forked 20792 +[16980] Forked 20793 +(20792) found +(20793) found +[16979] Forked 20794 +[16978] Forked 20795 +(20794) found +(20795) found +[16977] Forked 20796 +[16976] Forked 20797 +(20796) found +(20797) found +[16975] Forked 20798 +[16974] Forked 20799 +(20798) found +(20799) found +[16973] Forked 20800 +[16972] Forked 20801 +(20800) found +(20801) found +[16971] Forked 20802 +[16970] Forked 20803 +(20802) found +(20803) found +[16969] Forked 20804 +[16968] Forked 20805 +(20804) found +(20805) found +[16967] Forked 20806 +[16966] Forked 20807 +(20806) found +(20807) found +[16965] Forked 20808 +[16964] Forked 20809 +(20808) found +(20809) found +[16963] Forked 20810 +[16962] Forked 20811 +(20810) found +(20811) found +[16961] Forked 20812 +[16960] Forked 20813 +(20812) found +(20813) found +[16959] Forked 20814 +[16958] Forked 20815 +(20814) found +(20815) found +[16957] Forked 20816 +[16956] Forked 20817 +(20816) found +(20817) found +[16955] Forked 20818 +[16954] Forked 20819 +(20818) found +(20819) found +[16953] Forked 20820 +[16952] Forked 20821 +(20820) found +(20821) found +[16951] Forked 20822 +[16950] Forked 20823 +(20822) found +(20823) found +[16949] Forked 20824 +(20824) found +[16948] Forked 20825 +(20825) found +[16947] Forked 20826 +(20826) found +[16946] Forked 20827 +(20827) found +[16945] Forked 20828 +(20828) found +[16944] Forked 20829 +(20829) found +[16943] Forked 20830 +(20830) found +[16942] Forked 20831 +(20831) found +[16941] Forked 20832 +(20832) found +[16940] Forked 20833 +(20833) found +[16939] Forked 20834 +(20834) found +[16938] Forked 20835 +(20835) found +[16937] Forked 20836 +(20836) found +[16936] Forked 20837 +(20837) found +[16935] Forked 20838 +(20838) found +[16934] Forked 20839 +(20839) found +[16933] Forked 20840 +(20840) found +[16932] Forked 20841 +(20841) found +[16931] Forked 20842 +(20842) found +[16930] Forked 20843 +(20843) found +[16929] Forked 20844 +(20844) found +[16928] Forked 20845 +(20845) found +[16927] Forked 20846 +(20846) found +[16926] Forked 20847 +(20847) found +[16925] Forked 20848 +(20848) found +[16924] Forked 20849 +(20849) found +[16923] Forked 20850 +(20850) found +[16922] Forked 20851 +(20851) found +[16921] Forked 20852 +(20852) found +[16920] Forked 20853 +(20853) found +[16919] Forked 20854 +(20854) found +[16918] Forked 20855 +(20855) found +[16917] Forked 20856 +(20856) found +[16916] Forked 20857 +(20857) found +[16915] Forked 20858 +(20858) found +[16914] Forked 20859 +(20859) found +[16913] Forked 20860 +[16912] Forked 20861 +(20860) found +(20861) found +[16911] Forked 20862 +[16910] Forked 20863 +(20862) found +(20863) found +[16909] Forked 20864 +[16908] Forked 20865 +(20865) found +(20864) found +[16907] Forked 20866 +(20866) found +[16906] Forked 20867 +(20867) found +[16905] Forked 20868 +(20868) found +[16904] Forked 20869 +(20869) found +[16903] Forked 20870 +(20870) found +[16902] Forked 20871 +(20871) found +[16901] Forked 20872 +(20872) found +[16900] Forked 20873 +(20873) found +[16899] Forked 20874 +(20874) found +[16898] Forked 20875 +(20875) found +[16897] Forked 20876 +(20876) found +[16896] Forked 20877 +(20877) found +[16895] Forked 20878 +(20878) found +[16894] Forked 20879 +(20879) found +[16893] Forked 20880 +(20880) found +[16892] Forked 20881 +(20881) found +[16891] Forked 20882 +(20882) found +[16890] Forked 20883 +(20883) found +[16889] Forked 20884 +(20884) found +[16888] Forked 20885 +(20885) found +[16887] Forked 20886 +(20886) found +[16886] Forked 20887 +(20887) found +[16885] Forked 20888 +(20888) found +[16884] Forked 20889 +(20889) found +[16883] Forked 20890 +(20890) found +[16882] Forked 20891 +(20891) found +[16881] Forked 20892 +(20892) found +[16880] Forked 20893 +(20893) found +[16879] Forked 20894 +(20894) found +[16878] Forked 20895 +(20895) found +[16877] Forked 20896 +(20896) found +[16876] Forked 20897 +(20897) found +[16875] Forked 20898 +(20898) found +[16874] Forked 20899 +(20899) found +[16873] Forked 20900 +(20900) found +[16872] Forked 20901 +(20901) found +[16871] Forked 20902 +(20902) found +[16870] Forked 20903 +(20903) found +[16869] Forked 20904 +(20904) found +[16868] Forked 20905 +(20905) found +[16867] Forked 20906 +(20906) found +[16866] Forked 20907 +(20907) found +[16865] Forked 20908 +(20908) found +[16864] Forked 20909 +(20909) found +[16863] Forked 20910 +(20910) found +[16862] Forked 20911 +(20911) found +[16861] Forked 20912 +(20912) found +[16860] Forked 20913 +(20913) found +[16859] Forked 20914 +(20914) found +[16858] Forked 20915 +(20915) found +[16857] Forked 20916 +(20916) found +[16856] Forked 20917 +(20917) found +[16855] Forked 20918 +(20918) found +[16854] Forked 20919 +(20919) found +[16853] Forked 20920 +(20920) found +[16852] Forked 20921 +(20921) found +[16851] Forked 20922 +(20922) found +[16850] Forked 20923 +(20923) found +[16849] Forked 20924 +(20924) found +[16848] Forked 20925 +(20925) found +[16847] Forked 20926 +(20926) found +[16846] Forked 20927 +(20927) found +[16845] Forked 20928 +(20928) found +[16844] Forked 20929 +(20929) found +[16843] Forked 20930 +[16842] Forked 20931 +(20930) found +(20931) found +[16841] Forked 20932 +[16840] Forked 20933 +(20932) found +(20933) found +[16839] Forked 20934 +[16838] Forked 20935 +(20934) found +(20935) found +[16837] Forked 20936 +[16836] Forked 20937 +(20936) found +(20937) found +[16835] Forked 20938 +[16834] Forked 20939 +(20938) found +(20939) found +[16833] Forked 20940 +[16832] Forked 20941 +(20940) found +(20941) found +[16831] Forked 20942 +[16830] Forked 20943 +(20942) found +(20943) found +[16829] Forked 20944 +[16828] Forked 20945 +(20944) found +(20945) found +[16827] Forked 20946 +[16826] Forked 20947 +(20946) found +(20947) found +[16825] Forked 20948 +(20948) found +[16824] Forked 20949 +(20949) found +[16823] Forked 20950 +[16822] Forked 20951 +(20950) found +(20951) found +[16821] Forked 20952 +[16820] Forked 20953 +(20952) found +(20953) found +[16819] Forked 20954 +[16818] Forked 20955 +(20954) found +(20955) found +[16817] Forked 20956 +[16816] Forked 20957 +(20956) found +(20957) found +[16815] Forked 20958 +[16814] Forked 20959 +(20958) found +(20959) found +[16813] Forked 20960 +[16812] Forked 20961 +(20960) found +(20961) found +[16811] Forked 20962 +[16810] Forked 20963 +(20962) found +(20963) found +[16809] Forked 20964 +[16808] Forked 20965 +(20964) found +(20965) found +[16807] Forked 20966 +[16806] Forked 20967 +(20966) found +(20967) found +[16805] Forked 20968 +[16804] Forked 20969 +(20968) found +(20969) found +[16803] Forked 20970 +[16802] Forked 20971 +(20970) found +(20971) found +[16801] Forked 20972 +[16800] Forked 20973 +(20972) found +(20973) found +[16799] Forked 20974 +(20974) found +[16798] Forked 20975 +(20975) found +[16797] Forked 20976 +(20976) found +[16796] Forked 20977 +(20977) found +[16795] Forked 20978 +(20978) found +[16794] Forked 20979 +(20979) found +[16793] Forked 20980 +(20980) found +[16792] Forked 20981 +(20981) found +[16791] Forked 20982 +(20982) found +[16790] Forked 20983 +(20983) found +[16789] Forked 20984 +(20984) found +[16788] Forked 20985 +(20985) found +[16787] Forked 20986 +(20986) found +[16786] Forked 20987 +(20987) found +[16785] Forked 20988 +(20988) found +[16784] Forked 20989 +(20989) found +[16783] Forked 20990 +(20990) found +[16782] Forked 20991 +(20991) found +[16781] Forked 20992 +(20992) found +[16780] Forked 20993 +(20993) found +[16779] Forked 20994 +(20994) found +[16778] Forked 20995 +(20995) found +[16777] Forked 20996 +(20996) found +[16776] Forked 20997 +(20997) found +[16775] Forked 20998 +(20998) found +[16774] Forked 20999 +(20999) found +[16773] Forked 21000 +(21000) found +[16772] Forked 21001 +(21001) found +[16771] Forked 21002 +(21002) found +[16770] Forked 21003 +(21003) found +[16769] Forked 21004 +(21004) found +[16768] Forked 21005 +(21005) found +[16767] Forked 21006 +(21006) found +[16766] Forked 21007 +(21007) found +[16765] Forked 21008 +(21008) found +[16764] Forked 21009 +(21009) found +[16763] Forked 21010 +(21010) found +[16762] Forked 21011 +[16761] Forked 21012 +(21011) found +(21012) found +[16760] Forked 21013 +[16759] Forked 21014 +(21013) found +(21014) found +[16758] Forked 21015 +[16757] Forked 21016 +(21015) found +(21016) found +[16756] Forked 21017 +[16755] Forked 21018 +(21017) found +(21018) found +[16754] Forked 21019 +[16753] Forked 21020 +(21019) found +(21020) found +[16752] Forked 21021 +[16751] Forked 21022 +(21021) found +(21022) found +[16750] Forked 21023 +[16749] Forked 21024 +(21023) found +(21024) found +[16748] Forked 21025 +[16747] Forked 21026 +(21025) found +(21026) found +[16746] Forked 21027 +[16745] Forked 21028 +(21027) found +(21028) found +[16744] Forked 21029 +[16743] Forked 21030 +(21029) found +(21030) found +[16742] Forked 21031 +[16741] Forked 21032 +(21031) found +(21032) found +[16740] Forked 21033 +[16739] Forked 21034 +(21033) found +(21034) found +[16738] Forked 21035 +[16737] Forked 21036 +(21035) found +(21036) found +[16736] Forked 21037 +[16735] Forked 21038 +(21037) found +(21038) found +[16734] Forked 21039 +[16733] Forked 21040 +(21039) found +(21040) found +[16732] Forked 21041 +[16731] Forked 21042 +(21041) found +(21042) found +[16730] Forked 21043 +[16729] Forked 21044 +(21043) found +(21044) found +[16728] Forked 21045 +[16727] Forked 21046 +(21045) found +(21046) found +[16726] Forked 21047 +[16725] Forked 21048 +(21047) found +(21048) found +[16724] Forked 21049 +[16723] Forked 21050 +(21049) found +(21050) found +[16722] Forked 21051 +[16721] Forked 21052 +(21051) found +(21052) found +[16720] Forked 21053 +[16719] Forked 21054 +(21053) found +(21054) found +[16718] Forked 21055 +[16717] Forked 21056 +(21055) found +(21056) found +[16716] Forked 21057 +[16715] Forked 21058 +(21057) found +(21058) found +[16714] Forked 21059 +[16713] Forked 21060 +(21059) found +(21060) found +[16712] Forked 21061 +[16711] Forked 21062 +(21061) found +(21062) found +[16710] Forked 21063 +[16709] Forked 21064 +(21063) found +(21064) found +[16708] Forked 21065 +[16707] Forked 21066 +(21065) found +(21066) found +[16706] Forked 21067 +[16705] Forked 21068 +(21067) found +(21068) found +[16704] Forked 21069 +[16703] Forked 21070 +(21069) found +(21070) found +[16702] Forked 21071 +[16701] Forked 21072 +(21071) found +(21072) found +[16700] Forked 21073 +[16699] Forked 21074 +(21073) found +(21074) found +[16698] Forked 21075 +[16697] Forked 21076 +(21075) found +(21076) found +[16696] Forked 21077 +[16695] Forked 21078 +(21077) found +(21078) found +[16694] Forked 21079 +[16693] Forked 21080 +(21079) found +(21080) found +[16692] Forked 21081 +(21081) found +[16691] Forked 21082 +[16690] Forked 21083 +(21082) found +(21083) found +[16689] Forked 21084 +[16688] Forked 21085 +(21084) found +(21085) found +[16687] Forked 21086 +[16686] Forked 21087 +(21086) found +(21087) found +[16685] Forked 21088 +[16684] Forked 21089 +(21088) found +(21089) found +[16683] Forked 21090 +[16682] Forked 21091 +(21090) found +(21091) found +[16681] Forked 21092 +[16680] Forked 21093 +(21093) found +(21092) found +[16679] Forked 21094 +(21094) found +[16678] Forked 21095 +(21095) found +[16677] Forked 21096 +(21096) found +[16676] Forked 21097 +(21097) found +[16675] Forked 21098 +(21098) found +[16674] Forked 21099 +(21099) found +[16673] Forked 21100 +(21100) found +[16672] Forked 21101 +(21101) found +[16671] Forked 21102 +(21102) found +[16670] Forked 21103 +(21103) found +[16669] Forked 21104 +(21104) found +[16668] Forked 21105 +(21105) found +[16667] Forked 21106 +(21106) found +[16666] Forked 21107 +(21107) found +[16665] Forked 21108 +(21108) found +[16664] Forked 21109 +(21109) found +[16663] Forked 21110 +(21110) found +[16662] Forked 21111 +(21111) found +[16661] Forked 21112 +(21112) found +[16660] Forked 21113 +(21113) found +[16659] Forked 21114 +(21114) found +[16658] Forked 21115 +(21115) found +[16657] Forked 21116 +(21116) found +[16656] Forked 21117 +(21117) found +[16655] Forked 21118 +(21118) found +[16654] Forked 21119 +(21119) found +[16653] Forked 21120 +(21120) found +[16652] Forked 21121 +(21121) found +[16651] Forked 21122 +(21122) found +[16650] Forked 21123 +(21123) found +[16649] Forked 21124 +(21124) found +[16648] Forked 21125 +(21125) found +[16647] Forked 21126 +(21126) found +[16646] Forked 21127 +(21127) found +[16645] Forked 21128 +(21128) found +[16644] Forked 21129 +(21129) found +[16643] Forked 21130 +(21130) found +[16642] Forked 21131 +(21131) found +[16641] Forked 21132 +(21132) found +[16640] Forked 21133 +(21133) found +[16639] Forked 21134 +(21134) found +[16638] Forked 21135 +[16637] Forked 21136 +(21135) found +(21136) found +[16636] Forked 21137 +[16635] Forked 21138 +(21137) found +(21138) found +[16634] Forked 21139 +[16633] Forked 21140 +(21139) found +(21140) found +[16632] Forked 21141 +[16631] Forked 21142 +(21141) found +(21142) found +[16630] Forked 21143 +[16629] Forked 21144 +(21143) found +(21144) found +[16628] Forked 21145 +[16627] Forked 21146 +(21145) found +(21146) found +[16626] Forked 21147 +[16625] Forked 21148 +(21147) found +(21148) found +[16624] Forked 21149 +[16623] Forked 21150 +(21149) found +(21150) found +[16622] Forked 21151 +[16621] Forked 21152 +(21151) found +(21152) found +[16620] Forked 21153 +[16619] Forked 21154 +(21153) found +(21154) found +[16618] Forked 21155 +[16617] Forked 21156 +(21155) found +(21156) found +[16616] Forked 21157 +[16615] Forked 21158 +(21157) found +(21158) found +[16614] Forked 21159 +[16613] Forked 21160 +(21159) found +(21160) found +[16612] Forked 21161 +[16611] Forked 21162 +(21161) found +(21162) found +[16610] Forked 21163 +[16609] Forked 21164 +(21163) found +(21164) found +[16608] Forked 21165 +[16607] Forked 21166 +(21165) found +(21166) found +[16606] Forked 21167 +[16605] Forked 21168 +(21167) found +(21168) found +[16604] Forked 21169 +[16603] Forked 21170 +(21169) found +(21170) found +[16602] Forked 21171 +[16601] Forked 21172 +(21171) found +(21172) found +[16600] Forked 21173 +[16599] Forked 21175 +(21173) found +(21175) found +[16598] Forked 21176 +(21176) found +[16597] Forked 21177 +(21177) found +[16596] Forked 21178 +(21178) found +[16595] Forked 21179 +(21179) found +[16594] Forked 21180 +(21180) found +[16593] Forked 21181 +(21181) found +[16592] Forked 21182 +(21182) found +[16591] Forked 21183 +(21183) found +[16590] Forked 21184 +(21184) found +[16589] Forked 21185 +(21185) found +[16588] Forked 21186 +(21186) found +[16587] Forked 21187 +(21187) found +[16586] Forked 21188 +(21188) found +[16585] Forked 21189 +(21189) found +[16584] Forked 21190 +(21190) found +[16583] Forked 21191 +(21191) found +[16582] Forked 21192 +(21192) found +[16581] Forked 21193 +(21193) found +[16580] Forked 21194 +(21194) found +[16579] Forked 21195 +(21195) found +[16578] Forked 21196 +(21196) found +[16577] Forked 21197 +(21197) found +[16576] Forked 21198 +(21198) found +[16575] Forked 21199 +(21199) found +[16574] Forked 21200 +(21200) found +[16573] Forked 21201 +(21201) found +[16572] Forked 21202 +(21202) found +[16571] Forked 21203 +(21203) found +[16570] Forked 21204 +(21204) found +[16569] Forked 21205 +(21205) found +[16568] Forked 21206 +(21206) found +[16567] Forked 21207 +(21207) found +[16566] Forked 21208 +(21208) found +[16565] Forked 21209 +(21209) found +[16564] Forked 21210 +(21210) found +[16563] Forked 21211 +(21211) found +[16562] Forked 21212 +(21212) found +[16561] Forked 21213 +(21213) found +[16560] Forked 21214 +(21214) found +[16559] Forked 21215 +(21215) found +[16558] Forked 21216 +[16557] Forked 21217 +(21216) found +(21217) found +[16556] Forked 21218 +[16555] Forked 21219 +(21218) found +(21219) found +[16554] Forked 21220 +[16553] Forked 21221 +(21220) found +(21221) found +[16552] Forked 21222 +[16551] Forked 21223 +(21222) found +(21223) found +[16550] Forked 21224 +[16549] Forked 21225 +(21224) found +(21225) found +[16548] Forked 21226 +[16547] Forked 21227 +(21226) found +(21227) found +[16546] Forked 21228 +[16545] Forked 21229 +(21228) found +(21229) found +[16544] Forked 21230 +[16543] Forked 21231 +(21230) found +(21231) found +[16542] Forked 21232 +[16541] Forked 21233 +(21232) found +(21233) found +[16540] Forked 21234 +[16539] Forked 21235 +(21234) found +(21235) found +[16538] Forked 21236 +[16537] Forked 21237 +(21236) found +(21237) found +[16536] Forked 21238 +[16535] Forked 21239 +(21238) found +(21239) found +[16534] Forked 21240 +[16533] Forked 21241 +(21240) found +(21241) found +[16532] Forked 21242 +[16531] Forked 21243 +(21242) found +(21243) found +[16530] Forked 21244 +[16529] Forked 21245 +(21244) found +(21245) found +[16528] Forked 21246 +[16527] Forked 21247 +(21246) found +(21247) found +[16526] Forked 21248 +[16525] Forked 21249 +(21248) found +(21249) found +[16524] Forked 21250 +[16523] Forked 21251 +(21250) found +(21251) found +[16522] Forked 21252 +[16521] Forked 21253 +(21252) found +(21253) found +[16520] Forked 21254 +[16519] Forked 21255 +(21254) found +(21255) found +[16518] Forked 21256 +[16517] Forked 21257 +(21256) found +(21257) found +[16516] Forked 21258 +[16515] Forked 21259 +(21258) found +(21259) found +[16514] Forked 21260 +[16513] Forked 21261 +(21260) found +(21261) found +[16512] Forked 21262 +(21262) found +[16511] Forked 21263 +(21263) found +[16510] Forked 21264 +(21264) found +[16509] Forked 21265 +(21265) found +[16508] Forked 21266 +(21266) found +[16507] Forked 21267 +(21267) found +[16506] Forked 21268 +(21268) found +[16505] Forked 21269 +(21269) found +[16504] Forked 21270 +(21270) found +[16503] Forked 21271 +(21271) found +[16502] Forked 21272 +(21272) found +[16501] Forked 21273 +(21273) found +[16500] Forked 21274 +(21274) found +[16499] Forked 21275 +(21275) found +[16498] Forked 21276 +(21276) found +[16497] Forked 21277 +(21277) found +[16496] Forked 21278 +(21278) found +[16495] Forked 21279 +(21279) found +[16494] Forked 21280 +(21280) found +[16493] Forked 21281 +(21281) found +[16492] Forked 21282 +(21282) found +[16491] Forked 21283 +(21283) found +[16490] Forked 21284 +(21284) found +[16489] Forked 21285 +(21285) found +[16488] Forked 21286 +(21286) found +[16487] Forked 21287 +(21287) found +[16486] Forked 21288 +(21288) found +[16485] Forked 21289 +(21289) found +[16484] Forked 21290 +(21290) found +[16483] Forked 21291 +(21291) found +[16482] Forked 21292 +(21292) found +[16481] Forked 21293 +(21293) found +[16480] Forked 21294 +(21294) found +[16479] Forked 21295 +(21295) found +[16478] Forked 21296 +(21296) found +[16477] Forked 21297 +[16476] Forked 21298 +(21297) found +(21298) found +[16475] Forked 21299 +[16474] Forked 21300 +(21299) found +(21300) found +[16473] Forked 21301 +[16472] Forked 21302 +(21301) found +(21302) found +[16471] Forked 21303 +[16470] Forked 21304 +(21303) found +(21304) found +[16469] Forked 21305 +[16468] Forked 21306 +(21305) found +(21306) found +[16467] Forked 21307 +[16466] Forked 21308 +(21307) found +(21308) found +[16465] Forked 21309 +[16464] Forked 21310 +(21309) found +(21310) found +[16463] Forked 21311 +[16462] Forked 21312 +(21311) found +(21312) found +[16461] Forked 21313 +[16460] Forked 21314 +(21313) found +(21314) found +[16459] Forked 21315 +[16458] Forked 21316 +(21315) found +(21316) found +[16457] Forked 21317 +[16456] Forked 21318 +(21317) found +(21318) found +[16455] Forked 21319 +[16454] Forked 21320 +(21319) found +(21320) found +[16453] Forked 21321 +[16452] Forked 21322 +(21321) found +(21322) found +[16451] Forked 21323 +[16450] Forked 21324 +(21323) found +(21324) found +[16449] Forked 21325 +[16448] Forked 21326 +(21325) found +(21326) found +[16447] Forked 21327 +[16446] Forked 21328 +(21327) found +(21328) found +[16445] Forked 21329 +[16444] Forked 21330 +(21329) found +(21330) found +[16443] Forked 21331 +[16442] Forked 21332 +(21331) found +(21332) found +[16441] Forked 21333 +[16440] Forked 21334 +(21333) found +(21334) found +[16439] Forked 21335 +[16438] Forked 21336 +(21335) found +(21336) found +[16437] Forked 21337 +[16436] Forked 21338 +(21337) found +(21338) found +[16435] Forked 21339 +[16434] Forked 21340 +(21339) found +(21340) found +[16433] Forked 21341 +[16432] Forked 21342 +(21341) found +(21342) found +[16431] Forked 21343 +[16430] Forked 21344 +(21343) found +(21344) found +[16429] Forked 21345 +[16428] Forked 21346 +(21345) found +(21346) found +[16427] Forked 21347 +[16426] Forked 21348 +(21347) found +(21348) found +[16425] Forked 21349 +[16424] Forked 21350 +(21349) found +(21350) found +[16423] Forked 21351 +[16422] Forked 21352 +(21351) found +(21352) found +[16421] Forked 21353 +[16420] Forked 21354 +(21353) found +(21354) found +[16419] Forked 21355 +[16418] Forked 21356 +(21355) found +(21356) found +[16417] Forked 21357 +[16416] Forked 21358 +(21357) found +(21358) found +[16415] Forked 21359 +[16414] Forked 21360 +(21359) found +(21360) found +[16413] Forked 21361 +[16412] Forked 21362 +(21361) found +(21362) found +[16411] Forked 21363 +[16410] Forked 21364 +(21363) found +(21364) found +[16409] Forked 21365 +[16408] Forked 21366 +(21365) found +(21366) found +[16407] Forked 21367 +[16406] Forked 21368 +(21367) found +(21368) found +[16405] Forked 21369 +[16404] Forked 21370 +(21369) found +(21370) found +[16403] Forked 21371 +[16402] Forked 21372 +(21371) found +(21372) found +[16401] Forked 21373 +[16400] Forked 21374 +(21373) found +(21374) found +[16399] Forked 21375 +[16398] Forked 21376 +(21375) found +(21376) found +[16397] Forked 21377 +[16396] Forked 21378 +(21377) found +(21378) found +[16395] Forked 21379 +[16394] Forked 21380 +(21379) found +(21380) found +[16393] Forked 21381 +[16392] Forked 21382 +(21381) found +(21382) found +[16391] Forked 21383 +[16390] Forked 21384 +(21383) found +(21384) found +[16389] Forked 21385 +[16388] Forked 21386 +(21385) found +(21386) found +[16387] Forked 21387 +[16386] Forked 21388 +(21387) found +(21388) found +[16385] Forked 21389 +(21389) found +[16384] Forked 21390 +(21390) found +[16383] Forked 21391 +(21391) found +[16382] Forked 21392 +(21392) found +[16381] Forked 21393 +(21393) found +[16380] Forked 21394 +(21394) found +[16379] Forked 21395 +(21395) found +[16378] Forked 21396 +(21396) found +[16377] Forked 21397 +(21397) found +[16376] Forked 21398 +(21398) found +[16375] Forked 21399 +(21399) found +[16374] Forked 21400 +(21400) found +[16373] Forked 21401 +(21401) found +[16372] Forked 21402 +(21402) found +[16371] Forked 21403 +(21403) found +[16370] Forked 21404 +(21404) found +[16369] Forked 21405 +(21405) found +[16368] Forked 21406 +(21406) found +[16367] Forked 21407 +(21407) found +[16366] Forked 21408 +(21408) found +[16365] Forked 21409 +(21409) found +[16364] Forked 21410 +(21410) found +[16363] Forked 21411 +(21411) found +[16362] Forked 21412 +(21412) found +[16361] Forked 21413 +(21413) found +[16360] Forked 21414 +(21414) found +[16359] Forked 21415 +(21415) found +[16358] Forked 21416 +(21416) found +[16357] Forked 21417 +(21417) found +[16356] Forked 21418 +(21418) found +[16355] Forked 21419 +(21419) found +[16354] Forked 21420 +(21420) found +[16353] Forked 21421 +(21421) found +[16352] Forked 21422 +(21422) found +[16351] Forked 21423 +(21423) found +[16350] Forked 21424 +(21424) found +[16349] Forked 21425 +(21425) found +[16348] Forked 21426 +(21426) found +[16347] Forked 21427 +(21427) found +[16346] Forked 21428 +[16345] Forked 21429 +(21428) found +(21429) found +[16344] Forked 21430 +[16343] Forked 21431 +(21430) found +(21431) found +[16342] Forked 21432 +(21432) found +[16341] Forked 21433 +[16340] Forked 21434 +(21433) found +(21434) found +[16339] Forked 21435 +[16338] Forked 21436 +(21435) found +(21436) found +[16337] Forked 21437 +[16336] Forked 21438 +(21437) found +(21438) found +[16335] Forked 21439 +[16334] Forked 21440 +(21439) found +(21440) found +[16333] Forked 21441 +[16332] Forked 21442 +(21441) found +(21442) found +[16331] Forked 21443 +[16330] Forked 21444 +(21443) found +(21444) found +[16329] Forked 21445 +[16328] Forked 21446 +(21445) found +(21446) found +[16327] Forked 21447 +[16326] Forked 21448 +(21447) found +(21448) found +[16325] Forked 21449 +[16324] Forked 21450 +(21449) found +(21450) found +[16323] Forked 21451 +[16322] Forked 21452 +(21451) found +(21452) found +[16321] Forked 21453 +[16320] Forked 21454 +(21453) found +(21454) found +[16319] Forked 21455 +[16318] Forked 21456 +(21455) found +(21456) found +[16317] Forked 21457 +[16316] Forked 21458 +(21457) found +(21458) found +[16315] Forked 21459 +[16314] Forked 21460 +(21459) found +(21460) found +[16313] Forked 21461 +[16312] Forked 21462 +(21461) found +(21462) found +[16311] Forked 21463 +[16310] Forked 21464 +(21463) found +(21464) found +[16309] Forked 21465 +[16308] Forked 21466 +(21465) found +(21466) found +[16307] Forked 21467 +[16306] Forked 21468 +(21468) found +(21467) found +[16305] Forked 21469 +(21469) found +[16304] Forked 21470 +(21470) found +[16303] Forked 21471 +(21471) found +[16302] Forked 21472 +(21472) found +[16301] Forked 21473 +(21473) found +[16300] Forked 21474 +(21474) found +[16299] Forked 21475 +(21475) found +[16298] Forked 21476 +(21476) found +[16297] Forked 21477 +(21477) found +[16296] Forked 21478 +(21478) found +[16295] Forked 21479 +(21479) found +[16294] Forked 21480 +(21480) found +[16293] Forked 21481 +(21481) found +[16292] Forked 21482 +(21482) found +[16291] Forked 21483 +(21483) found +[16290] Forked 21484 +(21484) found +[16289] Forked 21485 +(21485) found +[16288] Forked 21486 +(21486) found +[16287] Forked 21487 +(21487) found +[16286] Forked 21488 +(21488) found +[16285] Forked 21489 +(21489) found +[16284] Forked 21490 +(21490) found +[16283] Forked 21491 +(21491) found +[16282] Forked 21492 +(21492) found +[16281] Forked 21493 +(21493) found +[16280] Forked 21494 +(21494) found +[16279] Forked 21495 +(21495) found +[16278] Forked 21496 +(21496) found +[16277] Forked 21497 +(21497) found +[16276] Forked 21498 +(21498) found +[16275] Forked 21499 +(21499) found +[16274] Forked 21500 +(21500) found +[16273] Forked 21501 +(21501) found +[16272] Forked 21502 +(21502) found +[16271] Forked 21503 +[16270] Forked 21504 +(21503) found +(21504) found +[16269] Forked 21505 +[16268] Forked 21506 +(21505) found +(21506) found +[16267] Forked 21507 +[16266] Forked 21508 +(21507) found +(21508) found +[16265] Forked 21509 +[16264] Forked 21510 +(21509) found +(21510) found +[16263] Forked 21511 +[16262] Forked 21512 +(21511) found +(21512) found +[16261] Forked 21513 +[16260] Forked 21514 +(21513) found +(21514) found +[16259] Forked 21515 +[16258] Forked 21516 +(21515) found +(21516) found +[16257] Forked 21517 +[16256] Forked 21518 +(21517) found +(21518) found +[16255] Forked 21519 +[16254] Forked 21520 +(21519) found +(21520) found +[16253] Forked 21521 +[16252] Forked 21522 +(21521) found +(21522) found +[16251] Forked 21523 +[16250] Forked 21524 +(21523) found +(21524) found +[16249] Forked 21525 +[16248] Forked 21526 +(21525) found +(21526) found +[16247] Forked 21527 +[16246] Forked 21528 +(21527) found +(21528) found +[16245] Forked 21529 +[16244] Forked 21530 +(21529) found +(21530) found +[16243] Forked 21531 +[16242] Forked 21532 +(21531) found +(21532) found +[16241] Forked 21533 +[16240] Forked 21534 +(21533) found +(21534) found +[16239] Forked 21535 +[16238] Forked 21536 +(21535) found +(21536) found +[16237] Forked 21537 +[16236] Forked 21538 +(21537) found +(21538) found +[16235] Forked 21539 +[16234] Forked 21540 +(21539) found +(21540) found +[16233] Forked 21541 +[16232] Forked 21542 +(21541) found +(21542) found +[16231] Forked 21543 +[16230] Forked 21544 +(21543) found +(21544) found +[16229] Forked 21545 +(21545) found +[16228] Forked 21546 +(21546) found +[16227] Forked 21547 +(21547) found +[16226] Forked 21548 +(21548) found +[16225] Forked 21549 +(21549) found +[16224] Forked 21550 +(21550) found +[16223] Forked 21551 +(21551) found +[16222] Forked 21552 +(21552) found +[16221] Forked 21553 +(21553) found +[16220] Forked 21554 +(21554) found +[16219] Forked 21555 +(21555) found +[16218] Forked 21556 +(21556) found +[16217] Forked 21557 +(21557) found +[16216] Forked 21558 +(21558) found +[16215] Forked 21559 +(21559) found +[16214] Forked 21560 +(21560) found +[16213] Forked 21561 +(21561) found +[16212] Forked 21562 +(21562) found +[16211] Forked 21563 +(21563) found +[16210] Forked 21564 +(21564) found +[16209] Forked 21565 +(21565) found +[16208] Forked 21566 +(21566) found +[16207] Forked 21567 +(21567) found +[16206] Forked 21568 +(21568) found +[16205] Forked 21569 +(21569) found +[16204] Forked 21570 +(21570) found +[16203] Forked 21571 +(21571) found +[16202] Forked 21572 +(21572) found +[16201] Forked 21573 +(21573) found +[16200] Forked 21574 +(21574) found +[16199] Forked 21575 +(21575) found +[16198] Forked 21576 +(21576) found +[16197] Forked 21577 +(21577) found +[16196] Forked 21578 +(21578) found +[16195] Forked 21579 +(21579) found +[16194] Forked 21580 +(21580) found +[16193] Forked 21581 +(21581) found +[16192] Forked 21582 +(21582) found +[16191] Forked 21583 +(21583) found +[16190] Forked 21584 +[16189] Forked 21585 +(21584) found +(21585) found +[16188] Forked 21586 +[16187] Forked 21587 +(21586) found +(21587) found +[16186] Forked 21588 +[16185] Forked 21589 +(21588) found +(21589) found +[16184] Forked 21590 +[16183] Forked 21591 +(21590) found +(21591) found +[16182] Forked 21592 +[16181] Forked 21593 +(21592) found +(21593) found +[16180] Forked 21594 +[16179] Forked 21595 +(21594) found +(21595) found +[16178] Forked 21596 +[16177] Forked 21597 +(21596) found +(21597) found +[16176] Forked 21598 +[16175] Forked 21599 +(21598) found +(21599) found +[16174] Forked 21600 +[16173] Forked 21601 +(21600) found +(21601) found +[16172] Forked 21602 +[16171] Forked 21603 +(21602) found +(21603) found +[16170] Forked 21604 +[16169] Forked 21605 +(21604) found +(21605) found +[16168] Forked 21606 +[16167] Forked 21607 +(21606) found +(21607) found +[16166] Forked 21608 +[16165] Forked 21609 +(21608) found +(21609) found +[16164] Forked 21610 +[16163] Forked 21611 +(21610) found +(21611) found +[16162] Forked 21612 +[16161] Forked 21613 +(21612) found +(21613) found +[16160] Forked 21614 +[16159] Forked 21615 +(21614) found +(21615) found +[16158] Forked 21616 +[16157] Forked 21617 +(21616) found +(21617) found +[16156] Forked 21618 +[16155] Forked 21619 +(21618) found +(21619) found +[16154] Forked 21620 +[16153] Forked 21621 +(21620) found +(21621) found +[16152] Forked 21622 +[16151] Forked 21623 +(21622) found +(21623) found +[16150] Forked 21624 +[16149] Forked 21625 +(21624) found +(21625) found +[16148] Forked 21626 +[16147] Forked 21627 +(21626) found +(21627) found +[16146] Forked 21628 +(21628) found +[16145] Forked 21630 +(21630) found +[16144] Forked 21631 +(21631) found +[16143] Forked 21632 +(21632) found +[16142] Forked 21633 +(21633) found +[16141] Forked 21634 +(21634) found +[16140] Forked 21635 +(21635) found +[16139] Forked 21636 +(21636) found +[16138] Forked 21637 +(21637) found +[16137] Forked 21638 +(21638) found +[16136] Forked 21639 +(21639) found +[16135] Forked 21640 +(21640) found +[16134] Forked 21641 +(21641) found +[16133] Forked 21642 +(21642) found +[16132] Forked 21643 +(21643) found +[16131] Forked 21644 +(21644) found +[16130] Forked 21645 +(21645) found +[16129] Forked 21646 +(21646) found +[16128] Forked 21647 +(21647) found +[16127] Forked 21648 +(21648) found +[16126] Forked 21649 +(21649) found +[16125] Forked 21650 +(21650) found +[16124] Forked 21651 +(21651) found +[16123] Forked 21652 +(21652) found +[16122] Forked 21653 +(21653) found +[16121] Forked 21654 +(21654) found +[16120] Forked 21655 +(21655) found +[16119] Forked 21656 +(21656) found +[16118] Forked 21657 +(21657) found +[16117] Forked 21658 +(21658) found +[16116] Forked 21659 +(21659) found +[16115] Forked 21660 +(21660) found +[16114] Forked 21661 +(21661) found +[16113] Forked 21662 +(21662) found +[16112] Forked 21663 +(21663) found +[16111] Forked 21664 +(21664) found +[16110] Forked 21665 +(21665) found +[16109] Forked 21666 +(21666) found +[16108] Forked 21667 +(21667) found +[16107] Forked 21668 +[16106] Forked 21669 +(21668) found +(21669) found +[16105] Forked 21670 +[16104] Forked 21671 +(21670) found +(21671) found +[16103] Forked 21672 +[16102] Forked 21673 +(21672) found +(21673) found +[16101] Forked 21674 +[16100] Forked 21675 +(21674) found +(21675) found +[16099] Forked 21676 +[16098] Forked 21677 +(21676) found +(21677) found +[16097] Forked 21678 +[16096] Forked 21679 +(21678) found +(21679) found +[16095] Forked 21680 +[16094] Forked 21681 +(21680) found +(21681) found +[16093] Forked 21682 +[16092] Forked 21683 +(21682) found +(21683) found +[16091] Forked 21684 +[16090] Forked 21685 +(21684) found +(21685) found +[16089] Forked 21686 +[16088] Forked 21687 +(21686) found +(21687) found +[16087] Forked 21688 +[16086] Forked 21689 +(21688) found +(21689) found +[16085] Forked 21690 +[16084] Forked 21691 +(21690) found +(21691) found +[16083] Forked 21692 +[16082] Forked 21693 +(21692) found +(21693) found +[16081] Forked 21694 +[16080] Forked 21695 +(21694) found +(21695) found +[16079] Forked 21696 +(21696) found +[16078] Forked 21697 +(21697) found +[16077] Forked 21698 +(21698) found +[16076] Forked 21699 +(21699) found +[16075] Forked 21700 +(21700) found +[16074] Forked 21701 +(21701) found +[16073] Forked 21702 +(21702) found +[16072] Forked 21703 +(21703) found +[16071] Forked 21704 +(21704) found +[16070] Forked 21705 +(21705) found +[16069] Forked 21706 +(21706) found +[16068] Forked 21707 +(21707) found +[16067] Forked 21708 +(21708) found +[16066] Forked 21709 +(21709) found +[16065] Forked 21710 +(21710) found +[16064] Forked 21711 +(21711) found +[16063] Forked 21712 +(21712) found +[16062] Forked 21713 +(21713) found +[16061] Forked 21714 +(21714) found +[16060] Forked 21715 +(21715) found +[16059] Forked 21716 +(21716) found +[16058] Forked 21717 +(21717) found +[16057] Forked 21718 +(21718) found +[16056] Forked 21719 +(21719) found +[16055] Forked 21720 +(21720) found +[16054] Forked 21721 +(21721) found +[16053] Forked 21722 +(21722) found +[16052] Forked 21723 +(21723) found +[16051] Forked 21724 +(21724) found +[16050] Forked 21725 +(21725) found +[16049] Forked 21726 +(21726) found +[16048] Forked 21727 +(21727) found +[16047] Forked 21728 +(21728) found +[16046] Forked 21729 +(21729) found +[16045] Forked 21730 +(21730) found +[16044] Forked 21731 +(21731) found +[16043] Forked 21732 +(21732) found +[16042] Forked 21733 +(21733) found +[16041] Forked 21734 +(21734) found +[16040] Forked 21735 +(21735) found +[16039] Forked 21736 +(21736) found +[16038] Forked 21737 +(21737) found +[16037] Forked 21738 +(21738) found +[16036] Forked 21739 +(21739) found +[16035] Forked 21740 +(21740) found +[16034] Forked 21741 +(21741) found +[16033] Forked 21742 +(21742) found +[16032] Forked 21743 +(21743) found +[16031] Forked 21744 +(21744) found +[16030] Forked 21745 +(21745) found +[16029] Forked 21746 +[16028] Forked 21747 +(21746) found +(21747) found +[16027] Forked 21748 +[16026] Forked 21749 +(21748) found +(21749) found +[16025] Forked 21750 +[16024] Forked 21751 +(21750) found +(21751) found +[16023] Forked 21752 +(21752) found +[16022] Forked 21753 +[16021] Forked 21754 +(21753) found +(21754) found +[16020] Forked 21755 +(21755) found +[16019] Forked 21756 +(21756) found +[16018] Forked 21757 +[16017] Forked 21758 +(21757) found +(21758) found +[16016] Forked 21759 +[16015] Forked 21760 +(21759) found +(21760) found +[16014] Forked 21761 +[16013] Forked 21762 +(21761) found +(21762) found +[16012] Forked 21763 +[16011] Forked 21764 +(21763) found +(21764) found +[16010] Forked 21765 +[16009] Forked 21766 +(21765) found +(21766) found +[16008] Forked 21767 +[16007] Forked 21768 +(21767) found +(21768) found +[16006] Forked 21769 +[16005] Forked 21770 +(21769) found +(21770) found +[16004] Forked 21771 +[16003] Forked 21772 +(21771) found +(21772) found +[16002] Forked 21773 +[16001] Forked 21774 +(21773) found +(21774) found +[16000] Forked 21775 +[15999] Forked 21776 +(21775) found +(21776) found +[15998] Forked 21777 +[15997] Forked 21778 +(21777) found +(21778) found +[15996] Forked 21779 +[15995] Forked 21780 +(21779) found +(21780) found +[15994] Forked 21781 +[15993] Forked 21782 +(21781) found +(21782) found +[15992] Forked 21783 +[15991] Forked 21785 +(21783) found +(21785) found +[15990] Forked 21786 +(21786) found +[15989] Forked 21787 +(21787) found +[15988] Forked 21788 +(21788) found +[15987] Forked 21789 +(21789) found +[15986] Forked 21790 +(21790) found +[15985] Forked 21791 +(21791) found +[15984] Forked 21792 +(21792) found +[15983] Forked 21793 +(21793) found +[15982] Forked 21794 +(21794) found +[15981] Forked 21795 +(21795) found +[15980] Forked 21796 +(21796) found +[15979] Forked 21797 +(21797) found +[15978] Forked 21798 +(21798) found +[15977] Forked 21799 +(21799) found +[15976] Forked 21800 +(21800) found +[15975] Forked 21801 +(21801) found +[15974] Forked 21802 +(21802) found +[15973] Forked 21803 +(21803) found +[15972] Forked 21804 +(21804) found +[15971] Forked 21805 +(21805) found +[15970] Forked 21806 +(21806) found +[15969] Forked 21807 +(21807) found +[15968] Forked 21808 +(21808) found +[15967] Forked 21809 +(21809) found +[15966] Forked 21810 +(21810) found +[15965] Forked 21811 +(21811) found +[15964] Forked 21812 +(21812) found +[15963] Forked 21813 +(21813) found +[15962] Forked 21814 +(21814) found +[15961] Forked 21815 +(21815) found +[15960] Forked 21816 +(21816) found +[15959] Forked 21817 +(21817) found +[15958] Forked 21818 +(21818) found +[15957] Forked 21819 +(21819) found +[15956] Forked 21820 +(21820) found +[15955] Forked 21821 +(21821) found +[15954] Forked 21822 +(21822) found +[15953] Forked 21823 +(21823) found +[15952] Forked 21824 +(21824) found +[15951] Forked 21825 +(21825) found +[15950] Forked 21826 +(21826) found +[15949] Forked 21827 +(21827) found +[15948] Forked 21828 +(21828) found +[15947] Forked 21829 +(21829) found +[15946] Forked 21830 +(21830) found +[15945] Forked 21831 +(21831) found +[15944] Forked 21832 +(21832) found +[15943] Forked 21833 +(21833) found +[15942] Forked 21834 +(21834) found +[15941] Forked 21835 +(21835) found +[15940] Forked 21836 +(21836) found +[15939] Forked 21837 +(21837) found +[15938] Forked 21838 +(21838) found +[15937] Forked 21839 +(21839) found +[15936] Forked 21840 +(21840) found +[15935] Forked 21841 +(21841) found +[15934] Forked 21842 +(21842) found +[15933] Forked 21843 +(21843) found +[15932] Forked 21844 +(21844) found +[15931] Forked 21845 +(21845) found +[15930] Forked 21846 +(21846) found +[15929] Forked 21847 +(21847) found +[15928] Forked 21848 +(21848) found +[15927] Forked 21849 +(21849) found +[15926] Forked 21850 +(21850) found +[15925] Forked 21851 +(21851) found +[15924] Forked 21852 +(21852) found +[15923] Forked 21853 +(21853) found +[15922] Forked 21854 +(21854) found +[15921] Forked 21855 +(21855) found +[15920] Forked 21856 +(21856) found +[15919] Forked 21857 +(21857) found +[15918] Forked 21858 +(21858) found +[15917] Forked 21859 +(21859) found +[15916] Forked 21860 +(21860) found +[15915] Forked 21861 +(21861) found +[15914] Forked 21862 +(21862) found +[15913] Forked 21863 +(21863) found +[15912] Forked 21864 +(21864) found +[15911] Forked 21865 +(21865) found +[15910] Forked 21866 +(21866) found +[15909] Forked 21867 +(21867) found +[15908] Forked 21868 +(21868) found +[15907] Forked 21869 +(21869) found +[15906] Forked 21870 +(21870) found +[15905] Forked 21871 +(21871) found +[15904] Forked 21872 +(21872) found +[15903] Forked 21873 +(21873) found +[15902] Forked 21874 +(21874) found +[15901] Forked 21875 +(21875) found +[15900] Forked 21876 +(21876) found +[15899] Forked 21877 +(21877) found +[15898] Forked 21878 +(21878) found +[15897] Forked 21879 +(21879) found +[15896] Forked 21880 +(21880) found +[15895] Forked 21881 +(21881) found +[15894] Forked 21882 +(21882) found +[15893] Forked 21883 +(21883) found +[15892] Forked 21884 +(21884) found +[15891] Forked 21885 +(21885) found +[15890] Forked 21886 +(21886) found +[15889] Forked 21887 +(21887) found +[15888] Forked 21888 +(21888) found +[15887] Forked 21889 +(21889) found +[15886] Forked 21890 +(21890) found +[15885] Forked 21891 +(21891) found +[15884] Forked 21892 +(21892) found +[15883] Forked 21893 +(21893) found +[15882] Forked 21894 +(21894) found +[15881] Forked 21895 +(21895) found +[15880] Forked 21896 +[15879] Forked 21897 +(21896) found +(21897) found +[15878] Forked 21898 +[15877] Forked 21899 +(21898) found +(21899) found +[15876] Forked 21900 +[15875] Forked 21901 +(21900) found +(21901) found +[15874] Forked 21902 +[15873] Forked 21903 +(21902) found +(21903) found +[15872] Forked 21904 +[15871] Forked 21905 +(21904) found +(21905) found +[15870] Forked 21906 +[15869] Forked 21907 +(21906) found +(21907) found +[15868] Forked 21908 +[15867] Forked 21909 +(21908) found +(21909) found +[15866] Forked 21910 +[15865] Forked 21911 +(21910) found +(21911) found +[15864] Forked 21912 +[15863] Forked 21913 +(21912) found +(21913) found +[15862] Forked 21914 +[15861] Forked 21915 +(21914) found +(21915) found +[15860] Forked 21916 +[15859] Forked 21917 +(21916) found +(21917) found +[15858] Forked 21918 +[15857] Forked 21919 +(21918) found +(21919) found +[15856] Forked 21920 +[15855] Forked 21921 +(21920) found +(21921) found +[15854] Forked 21922 +[15853] Forked 21923 +(21922) found +(21923) found +[15852] Forked 21924 +[15851] Forked 21925 +(21924) found +(21925) found +[15850] Forked 21926 +[15849] Forked 21927 +(21926) found +(21927) found +[15848] Forked 21928 +[15847] Forked 21929 +(21928) found +(21929) found +[15846] Forked 21930 +[15845] Forked 21931 +(21930) found +(21931) found +[15844] Forked 21932 +[15843] Forked 21933 +(21932) found +(21933) found +[15842] Forked 21934 +[15841] Forked 21935 +(21934) found +(21935) found +[15840] Forked 21936 +[15839] Forked 21937 +(21936) found +(21937) found +[15838] Forked 21938 +[15837] Forked 21939 +(21938) found +(21939) found +[15836] Forked 21940 +[15835] Forked 21941 +(21940) found +(21941) found +[15834] Forked 21942 +[15833] Forked 21943 +(21942) found +(21943) found +[15832] Forked 21944 +[15831] Forked 21945 +(21944) found +(21945) found +[15830] Forked 21946 +[15829] Forked 21947 +(21946) found +(21947) found +[15828] Forked 21948 +[15827] Forked 21949 +(21948) found +(21949) found +[15826] Forked 21950 +[15825] Forked 21951 +(21950) found +(21951) found +[15824] Forked 21952 +[15823] Forked 21953 +(21952) found +(21953) found +[15822] Forked 21954 +[15821] Forked 21955 +(21954) found +(21955) found +[15820] Forked 21956 +[15819] Forked 21957 +(21956) found +(21957) found +[15818] Forked 21958 +[15817] Forked 21959 +(21958) found +(21959) found +[15816] Forked 21960 +[15815] Forked 21961 +(21960) found +(21961) found +[15814] Forked 21962 +[15813] Forked 21963 +(21962) found +(21963) found +[15812] Forked 21964 +[15811] Forked 21965 +(21964) found +(21965) found +[15810] Forked 21966 +[15809] Forked 21967 +(21966) found +(21967) found +[15808] Forked 21968 +[15807] Forked 21969 +(21968) found +(21969) found +[15806] Forked 21970 +[15805] Forked 21971 +(21970) found +(21971) found +[15804] Forked 21972 +[15803] Forked 21973 +(21972) found +(21973) found +[15802] Forked 21974 +[15801] Forked 21975 +(21974) found +(21975) found +[15800] Forked 21976 +[15799] Forked 21977 +(21976) found +(21977) found +[15798] Forked 21978 +[15797] Forked 21979 +(21978) found +(21979) found +[15796] Forked 21980 +[15795] Forked 21981 +(21980) found +(21981) found +[15794] Forked 21982 +[15793] Forked 21983 +(21982) found +(21983) found +[15792] Forked 21984 +[15791] Forked 21985 +(21984) found +(21985) found +[15790] Forked 21986 +[15789] Forked 21987 +(21986) found +(21987) found +[15788] Forked 21988 +[15787] Forked 21989 +(21988) found +(21989) found +[15786] Forked 21990 +[15785] Forked 21991 +(21990) found +(21991) found +[15784] Forked 21992 +[15783] Forked 21993 +(21992) found +(21993) found +[15782] Forked 21994 +[15781] Forked 21995 +(21994) found +(21995) found +[15780] Forked 21996 +[15779] Forked 21997 +(21996) found +(21997) found +[15778] Forked 21998 +[15777] Forked 21999 +(21998) found +(21999) found +[15776] Forked 22000 +[15775] Forked 22001 +(22000) found +(22001) found +[15774] Forked 22002 +[15773] Forked 22004 +(22002) found +(22004) found +[15772] Forked 22005 +(22005) found +[15771] Forked 22006 +(22006) found +[15770] Forked 22007 +(22007) found +[15769] Forked 22008 +(22008) found +[15768] Forked 22009 +(22009) found +[15767] Forked 22010 +(22010) found +[15766] Forked 22011 +(22011) found +[15765] Forked 22012 +(22012) found +[15764] Forked 22013 +(22013) found +[15763] Forked 22014 +(22014) found +[15762] Forked 22015 +(22015) found +[15761] Forked 22016 +(22016) found +[15760] Forked 22017 +(22017) found +[15759] Forked 22018 +(22018) found +[15758] Forked 22019 +(22019) found +[15757] Forked 22020 +(22020) found +[15756] Forked 22021 +(22021) found +[15755] Forked 22022 +(22022) found +[15754] Forked 22023 +(22023) found +[15753] Forked 22024 +(22024) found +[15752] Forked 22025 +(22025) found +[15751] Forked 22026 +(22026) found +[15750] Forked 22027 +(22027) found +[15749] Forked 22028 +(22028) found +[15748] Forked 22029 +(22029) found +[15747] Forked 22030 +(22030) found +[15746] Forked 22031 +(22031) found +[15745] Forked 22032 +(22032) found +[15744] Forked 22033 +(22033) found +[15743] Forked 22034 +(22034) found +[15742] Forked 22035 +(22035) found +[15741] Forked 22036 +(22036) found +[15740] Forked 22037 +(22037) found +[15739] Forked 22038 +(22038) found +[15738] Forked 22039 +(22039) found +[15737] Forked 22040 +(22040) found +[15736] Forked 22041 +(22041) found +[15735] Forked 22042 +(22042) found +[15734] Forked 22043 +(22043) found +[15733] Forked 22044 +(22044) found +[15732] Forked 22045 +(22045) found +[15731] Forked 22046 +(22046) found +[15730] Forked 22047 +(22047) found +[15729] Forked 22048 +(22048) found +[15728] Forked 22049 +(22049) found +[15727] Forked 22050 +(22050) found +[15726] Forked 22051 +(22051) found +[15725] Forked 22052 +(22052) found +[15724] Forked 22053 +(22053) found +[15723] Forked 22054 +(22054) found +[15722] Forked 22055 +(22055) found +[15721] Forked 22056 +(22056) found +[15720] Forked 22057 +(22057) found +[15719] Forked 22058 +(22058) found +[15718] Forked 22059 +(22059) found +[15717] Forked 22060 +(22060) found +[15716] Forked 22061 +(22061) found +[15715] Forked 22062 +(22062) found +[15714] Forked 22063 +(22063) found +[15713] Forked 22064 +(22064) found +[15712] Forked 22065 +(22065) found +[15711] Forked 22066 +[15710] Forked 22067 +(22066) found +(22067) found +[15709] Forked 22068 +[15708] Forked 22069 +(22068) found +(22069) found +[15707] Forked 22070 +[15706] Forked 22071 +(22070) found +(22071) found +[15705] Forked 22072 +[15704] Forked 22073 +(22072) found +(22073) found +[15703] Forked 22074 +[15702] Forked 22075 +(22074) found +(22075) found +[15701] Forked 22076 +[15700] Forked 22077 +(22076) found +(22077) found +[15699] Forked 22078 +[15698] Forked 22079 +(22078) found +(22079) found +[15697] Forked 22080 +[15696] Forked 22081 +(22080) found +(22081) found +[15695] Forked 22082 +[15694] Forked 22083 +(22082) found +(22083) found +[15693] Forked 22084 +(22084) found +[15692] Forked 22085 +[15691] Forked 22086 +(22085) found +(22086) found +[15690] Forked 22087 +[15689] Forked 22088 +(22087) found +(22088) found +[15688] Forked 22089 +[15687] Forked 22090 +(22089) found +(22090) found +[15686] Forked 22091 +[15685] Forked 22092 +(22091) found +(22092) found +[15684] Forked 22093 +[15683] Forked 22094 +(22093) found +(22094) found +[15682] Forked 22095 +[15681] Forked 22096 +(22095) found +(22096) found +[15680] Forked 22097 +[15679] Forked 22098 +(22097) found +(22098) found +[15678] Forked 22099 +[15677] Forked 22100 +(22099) found +(22100) found +[15676] Forked 22101 +[15675] Forked 22102 +(22101) found +(22102) found +[15674] Forked 22103 +[15673] Forked 22104 +(22103) found +(22104) found +[15672] Forked 22105 +[15671] Forked 22106 +(22105) found +(22106) found +[15670] Forked 22107 +[15669] Forked 22108 +(22107) found +(22108) found +[15668] Forked 22109 +(22109) found +[15667] Forked 22110 +(22110) found +[15666] Forked 22111 +(22111) found +[15665] Forked 22112 +(22112) found +[15664] Forked 22113 +(22113) found +[15663] Forked 22114 +(22114) found +[15662] Forked 22115 +(22115) found +[15661] Forked 22116 +(22116) found +[15660] Forked 22117 +(22117) found +[15659] Forked 22118 +(22118) found +[15658] Forked 22119 +(22119) found +[15657] Forked 22120 +(22120) found +[15656] Forked 22121 +(22121) found +[15655] Forked 22122 +(22122) found +[15654] Forked 22123 +(22123) found +[15653] Forked 22124 +(22124) found +[15652] Forked 22125 +(22125) found +[15651] Forked 22126 +(22126) found +[15650] Forked 22127 +(22127) found +[15649] Forked 22128 +(22128) found +[15648] Forked 22129 +(22129) found +[15647] Forked 22130 +(22130) found +[15646] Forked 22131 +(22131) found +[15645] Forked 22132 +(22132) found +[15644] Forked 22133 +(22133) found +[15643] Forked 22134 +(22134) found +[15642] Forked 22135 +(22135) found +[15641] Forked 22136 +(22136) found +[15640] Forked 22137 +(22137) found +[15639] Forked 22138 +(22138) found +[15638] Forked 22139 +(22139) found +[15637] Forked 22140 +(22140) found +[15636] Forked 22141 +(22141) found +[15635] Forked 22142 +(22142) found +[15634] Forked 22143 +(22143) found +[15633] Forked 22144 +(22144) found +[15632] Forked 22145 +(22145) found +[15631] Forked 22146 +(22146) found +[15630] Forked 22147 +(22147) found +[15629] Forked 22148 +[15628] Forked 22149 +(22148) found +(22149) found +[15627] Forked 22150 +[15626] Forked 22151 +(22150) found +(22151) found +[15625] Forked 22152 +[15624] Forked 22153 +(22152) found +(22153) found +[15623] Forked 22154 +[15622] Forked 22155 +(22154) found +(22155) found +[15621] Forked 22156 +[15620] Forked 22157 +(22156) found +(22157) found +[15619] Forked 22158 +[15618] Forked 22159 +(22158) found +(22159) found +[15617] Forked 22160 +[15616] Forked 22161 +(22160) found +(22161) found +[15615] Forked 22162 +[15614] Forked 22163 +(22162) found +(22163) found +[15613] Forked 22164 +[15612] Forked 22165 +(22164) found +(22165) found +[15611] Forked 22166 +[15610] Forked 22167 +(22167) found +(22166) found +[15609] Forked 22168 +(22168) found +[15608] Forked 22169 +(22169) found +[15607] Forked 22170 +(22170) found +[15606] Forked 22171 +(22171) found +[15605] Forked 22172 +(22172) found +[15604] Forked 22173 +(22173) found +[15603] Forked 22174 +(22174) found +[15602] Forked 22175 +(22175) found +[15601] Forked 22176 +(22176) found +[15600] Forked 22177 +(22177) found +[15599] Forked 22178 +(22178) found +[15598] Forked 22179 +(22179) found +[15597] Forked 22180 +(22180) found +[15596] Forked 22181 +(22181) found +[15595] Forked 22182 +(22182) found +[15594] Forked 22183 +[15593] Forked 22184 +(22183) found +(22184) found +[15592] Forked 22185 +[15591] Forked 22186 +(22185) found +(22186) found +[15590] Forked 22187 +[15589] Forked 22188 +(22187) found +(22188) found +[15588] Forked 22189 +[15587] Forked 22190 +(22189) found +(22190) found +[15586] Forked 22191 +[15585] Forked 22192 +(22191) found +(22192) found +[15584] Forked 22193 +[15583] Forked 22194 +(22193) found +(22194) found +[15582] Forked 22195 +[15581] Forked 22196 +(22195) found +(22196) found +[15580] Forked 22197 +[15579] Forked 22198 +(22197) found +(22198) found +[15578] Forked 22199 +[15577] Forked 22200 +(22199) found +(22200) found +[15576] Forked 22201 +[15575] Forked 22202 +(22201) found +(22202) found +[15574] Forked 22203 +[15573] Forked 22204 +(22203) found +(22204) found +[15572] Forked 22205 +[15571] Forked 22206 +(22205) found +(22206) found +[15570] Forked 22207 +[15569] Forked 22209 +(22207) found +(22209) found +[15568] Forked 22210 +(22210) found +[15567] Forked 22211 +(22211) found +[15566] Forked 22212 +(22212) found +[15565] Forked 22213 +(22213) found +[15564] Forked 22214 +(22214) found +[15563] Forked 22215 +(22215) found +[15562] Forked 22216 +(22216) found +[15561] Forked 22217 +(22217) found +[15560] Forked 22218 +(22218) found +[15559] Forked 22219 +(22219) found +[15558] Forked 22220 +(22220) found +[15557] Forked 22221 +(22221) found +[15556] Forked 22222 +(22222) found +[15555] Forked 22223 +(22223) found +[15554] Forked 22224 +(22224) found +[15553] Forked 22225 +(22225) found +[15552] Forked 22226 +(22226) found +[15551] Forked 22227 +(22227) found +[15550] Forked 22228 +(22228) found +[15549] Forked 22229 +(22229) found +[15548] Forked 22230 +(22230) found +[15547] Forked 22231 +(22231) found +[15546] Forked 22232 +(22232) found +[15545] Forked 22233 +(22233) found +[15544] Forked 22234 +(22234) found +[15543] Forked 22235 +(22235) found +[15542] Forked 22236 +(22236) found +[15541] Forked 22237 +(22237) found +[15540] Forked 22238 +(22238) found +[15539] Forked 22239 +(22239) found +[15538] Forked 22240 +(22240) found +[15537] Forked 22241 +(22241) found +[15536] Forked 22242 +(22242) found +[15535] Forked 22243 +(22243) found +[15534] Forked 22244 +(22244) found +[15533] Forked 22245 +(22245) found +[15532] Forked 22246 +(22246) found +[15531] Forked 22247 +(22247) found +[15530] Forked 22248 +(22248) found +[15529] Forked 22249 +(22249) found +[15528] Forked 22250 +(22250) found +[15527] Forked 22251 +(22251) found +[15526] Forked 22252 +(22252) found +[15525] Forked 22253 +(22253) found +[15524] Forked 22254 +(22254) found +[15523] Forked 22255 +(22255) found +[15522] Forked 22256 +(22256) found +[15521] Forked 22257 +(22257) found +[15520] Forked 22258 +(22258) found +[15519] Forked 22259 +(22259) found +[15518] Forked 22260 +(22260) found +[15517] Forked 22261 +[15516] Forked 22262 +(22261) found +(22262) found +[15515] Forked 22263 +[15514] Forked 22264 +(22263) found +(22264) found +[15513] Forked 22265 +(22265) found +[15512] Forked 22266 +(22266) found +[15511] Forked 22267 +(22267) found +[15510] Forked 22268 +(22268) found +[15509] Forked 22269 +(22269) found +[15508] Forked 22270 +(22270) found +[15507] Forked 22271 +(22271) found +[15506] Forked 22272 +(22272) found +[15505] Forked 22273 +(22273) found +[15504] Forked 22274 +(22274) found +[15503] Forked 22275 +(22275) found +[15502] Forked 22276 +(22276) found +[15501] Forked 22277 +(22277) found +[15500] Forked 22278 +(22278) found +[15499] Forked 22279 +(22279) found +[15498] Forked 22280 +(22280) found +[15497] Forked 22281 +(22281) found +[15496] Forked 22282 +(22282) found +[15495] Forked 22283 +(22283) found +[15494] Forked 22284 +(22284) found +[15493] Forked 22285 +(22285) found +[15492] Forked 22286 +(22286) found +[15491] Forked 22287 +(22287) found +[15490] Forked 22288 +(22288) found +[15489] Forked 22289 +(22289) found +[15488] Forked 22290 +(22290) found +[15487] Forked 22291 +(22291) found +[15486] Forked 22292 +(22292) found +[15485] Forked 22293 +(22293) found +[15484] Forked 22294 +(22294) found +[15483] Forked 22295 +(22295) found +[15482] Forked 22296 +(22296) found +[15481] Forked 22297 +(22297) found +[15480] Forked 22298 +(22298) found +[15479] Forked 22299 +(22299) found +[15478] Forked 22300 +(22300) found +[15477] Forked 22301 +(22301) found +[15476] Forked 22302 +(22302) found +[15475] Forked 22303 +(22303) found +[15474] Forked 22304 +[15473] Forked 22305 +(22304) found +(22305) found +[15472] Forked 22306 +[15471] Forked 22307 +(22306) found +(22307) found +[15470] Forked 22308 +[15469] Forked 22309 +(22308) found +(22309) found +[15468] Forked 22310 +[15467] Forked 22311 +(22310) found +(22311) found +[15466] Forked 22312 +[15465] Forked 22313 +(22312) found +(22313) found +[15464] Forked 22314 +[15463] Forked 22315 +(22314) found +(22315) found +[15462] Forked 22316 +[15461] Forked 22317 +(22316) found +(22317) found +[15460] Forked 22318 +[15459] Forked 22319 +(22318) found +(22319) found +[15458] Forked 22320 +[15457] Forked 22321 +(22320) found +(22321) found +[15456] Forked 22322 +[15455] Forked 22323 +(22322) found +(22323) found +[15454] Forked 22324 +[15453] Forked 22325 +(22324) found +(22325) found +[15452] Forked 22326 +[15451] Forked 22327 +(22326) found +(22327) found +[15450] Forked 22328 +[15449] Forked 22329 +(22328) found +(22329) found +[15448] Forked 22330 +[15447] Forked 22331 +(22330) found +(22331) found +[15446] Forked 22332 +[15445] Forked 22333 +(22332) found +(22333) found +[15444] Forked 22334 +[15443] Forked 22335 +(22334) found +(22335) found +[15442] Forked 22336 +[15441] Forked 22337 +(22336) found +(22337) found +[15440] Forked 22338 +[15439] Forked 22339 +(22338) found +(22339) found +[15438] Forked 22340 +[15437] Forked 22341 +(22340) found +(22341) found +[15436] Forked 22342 +[15435] Forked 22343 +(22342) found +(22343) found +[15434] Forked 22344 +[15433] Forked 22345 +(22344) found +(22345) found +[15432] Forked 22346 +[15431] Forked 22347 +(22346) found +(22347) found +[15430] Forked 22348 +(22348) found +[15429] Forked 22349 +(22349) found +[15428] Forked 22350 +(22350) found +[15427] Forked 22351 +(22351) found +[15426] Forked 22352 +(22352) found +[15425] Forked 22353 +(22353) found +[15424] Forked 22354 +(22354) found +[15423] Forked 22355 +(22355) found +[15422] Forked 22356 +(22356) found +[15421] Forked 22357 +(22357) found +[15420] Forked 22358 +(22358) found +[15419] Forked 22359 +(22359) found +[15418] Forked 22360 +(22360) found +[15417] Forked 22361 +(22361) found +[15416] Forked 22362 +(22362) found +[15415] Forked 22363 +(22363) found +[15414] Forked 22364 +(22364) found +[15413] Forked 22365 +(22365) found +[15412] Forked 22366 +(22366) found +[15411] Forked 22367 +(22367) found +[15410] Forked 22368 +(22368) found +[15409] Forked 22369 +(22369) found +[15408] Forked 22370 +(22370) found +[15407] Forked 22371 +(22371) found +[15406] Forked 22372 +(22372) found +[15405] Forked 22373 +(22373) found +[15404] Forked 22374 +(22374) found +[15403] Forked 22375 +(22375) found +[15402] Forked 22376 +(22376) found +[15401] Forked 22377 +(22377) found +[15400] Forked 22378 +(22378) found +[15399] Forked 22379 +(22379) found +[15398] Forked 22380 +(22380) found +[15397] Forked 22381 +(22381) found +[15396] Forked 22382 +(22382) found +[15395] Forked 22383 +(22383) found +[15394] Forked 22384 +(22384) found +[15393] Forked 22385 +(22385) found +[15392] Forked 22386 +(22386) found +[15391] Forked 22387 +[15390] Forked 22388 +(22387) found +(22388) found +[15389] Forked 22389 +[15388] Forked 22390 +(22389) found +(22390) found +[15387] Forked 22391 +[15386] Forked 22392 +(22391) found +(22392) found +[15385] Forked 22393 +[15384] Forked 22394 +(22393) found +(22394) found +[15383] Forked 22395 +[15382] Forked 22396 +(22395) found +(22396) found +[15381] Forked 22397 +[15380] Forked 22398 +(22397) found +(22398) found +[15379] Forked 22399 +[15378] Forked 22400 +(22399) found +(22400) found +[15377] Forked 22401 +[15376] Forked 22402 +(22401) found +(22402) found +[15375] Forked 22403 +[15374] Forked 22404 +(22403) found +(22404) found +[15373] Forked 22405 +[15372] Forked 22406 +(22405) found +(22406) found +[15371] Forked 22407 +[15370] Forked 22408 +(22407) found +(22408) found +[15369] Forked 22409 +[15368] Forked 22410 +(22409) found +(22410) found +[15367] Forked 22411 +[15366] Forked 22412 +(22411) found +(22412) found +[15365] Forked 22413 +[15364] Forked 22414 +(22413) found +(22414) found +[15363] Forked 22415 +[15362] Forked 22416 +(22415) found +(22416) found +[15361] Forked 22417 +[15360] Forked 22418 +(22417) found +(22418) found +[15359] Forked 22419 +[15358] Forked 22420 +(22420) found +(22419) found +[15357] Forked 22421 +(22421) found +[15356] Forked 22422 +(22422) found +[15355] Forked 22423 +(22423) found +[15354] Forked 22424 +(22424) found +[15353] Forked 22425 +(22425) found +[15352] Forked 22426 +(22426) found +[15351] Forked 22427 +(22427) found +[15350] Forked 22428 +(22428) found +[15349] Forked 22429 +(22429) found +[15348] Forked 22430 +(22430) found +[15347] Forked 22431 +(22431) found +[15346] Forked 22432 +(22432) found +[15345] Forked 22433 +(22433) found +[15344] Forked 22434 +(22434) found +[15343] Forked 22435 +(22435) found +[15342] Forked 22436 +(22436) found +[15341] Forked 22437 +(22437) found +[15340] Forked 22438 +(22438) found +[15339] Forked 22439 +(22439) found +[15338] Forked 22440 +(22440) found +[15337] Forked 22441 +(22441) found +[15336] Forked 22442 +(22442) found +[15335] Forked 22443 +(22443) found +[15334] Forked 22444 +(22444) found +[15333] Forked 22445 +(22445) found +[15332] Forked 22446 +(22446) found +[15331] Forked 22447 +(22447) found +[15330] Forked 22448 +(22448) found +[15329] Forked 22449 +(22449) found +[15328] Forked 22450 +(22450) found +[15327] Forked 22451 +(22451) found +[15326] Forked 22452 +(22452) found +[15325] Forked 22453 +(22453) found +[15324] Forked 22454 +(22454) found +[15323] Forked 22455 +(22455) found +[15322] Forked 22456 +(22456) found +[15321] Forked 22457 +(22457) found +[15320] Forked 22458 +(22458) found +[15319] Forked 22459 +(22459) found +[15318] Forked 22460 +(22460) found +[15317] Forked 22461 +(22461) found +[15316] Forked 22462 +(22462) found +[15315] Forked 22463 +(22463) found +[15314] Forked 22464 +(22464) found +[15313] Forked 22465 +(22465) found +[15312] Forked 22466 +(22466) found +[15311] Forked 22467 +(22467) found +[15310] Forked 22468 +(22468) found +[15309] Forked 22469 +(22469) found +[15308] Forked 22470 +[15307] Forked 22471 +(22470) found +(22471) found +[15306] Forked 22472 +[15305] Forked 22473 +(22472) found +(22473) found +[15304] Forked 22474 +[15303] Forked 22475 +(22474) found +(22475) found +[15302] Forked 22476 +[15301] Forked 22477 +(22476) found +(22477) found +[15300] Forked 22478 +[15299] Forked 22479 +(22478) found +(22479) found +[15298] Forked 22480 +[15297] Forked 22481 +(22480) found +(22481) found +[15296] Forked 22482 +[15295] Forked 22483 +(22482) found +(22483) found +[15294] Forked 22484 +[15293] Forked 22485 +(22484) found +(22485) found +[15292] Forked 22486 +[15291] Forked 22487 +(22486) found +(22487) found +[15290] Forked 22488 +[15289] Forked 22489 +(22488) found +(22489) found +[15288] Forked 22490 +[15287] Forked 22491 +(22490) found +(22491) found +[15286] Forked 22492 +[15285] Forked 22493 +(22492) found +(22493) found +[15284] Forked 22494 +[15283] Forked 22495 +(22494) found +(22495) found +[15282] Forked 22496 +[15281] Forked 22497 +(22496) found +(22497) found +[15280] Forked 22498 +[15279] Forked 22499 +(22498) found +(22499) found +[15278] Forked 22500 +[15277] Forked 22501 +(22500) found +(22501) found +[15276] Forked 22502 +[15275] Forked 22503 +(22502) found +(22503) found +[15274] Forked 22504 +[15273] Forked 22505 +(22504) found +(22505) found +[15272] Forked 22506 +(22506) found +[15271] Forked 22507 +[15270] Forked 22508 +(22507) found +(22508) found +[15269] Forked 22509 +[15268] Forked 22510 +(22509) found +(22510) found +[15267] Forked 22511 +(22511) found +[15266] Forked 22512 +(22512) found +[15265] Forked 22513 +(22513) found +[15264] Forked 22514 +(22514) found +[15263] Forked 22515 +(22515) found +[15262] Forked 22516 +(22516) found +[15261] Forked 22517 +(22517) found +[15260] Forked 22518 +(22518) found +[15259] Forked 22519 +(22519) found +[15258] Forked 22520 +(22520) found +[15257] Forked 22521 +(22521) found +[15256] Forked 22522 +(22522) found +[15255] Forked 22523 +(22523) found +[15254] Forked 22524 +(22524) found +[15253] Forked 22525 +(22525) found +[15252] Forked 22526 +(22526) found +[15251] Forked 22527 +(22527) found +[15250] Forked 22528 +(22528) found +[15249] Forked 22529 +(22529) found +[15248] Forked 22530 +(22530) found +[15247] Forked 22531 +(22531) found +[15246] Forked 22532 +(22532) found +[15245] Forked 22533 +(22533) found +[15244] Forked 22534 +(22534) found +[15243] Forked 22535 +(22535) found +[15242] Forked 22536 +(22536) found +[15241] Forked 22537 +(22537) found +[15240] Forked 22538 +(22538) found +[15239] Forked 22539 +(22539) found +[15238] Forked 22540 +(22540) found +[15237] Forked 22541 +(22541) found +[15236] Forked 22542 +(22542) found +[15235] Forked 22543 +(22543) found +[15234] Forked 22544 +(22544) found +[15233] Forked 22545 +(22545) found +[15232] Forked 22546 +(22546) found +[15231] Forked 22547 +(22547) found +[15230] Forked 22548 +(22548) found +[15229] Forked 22549 +(22549) found +[15228] Forked 22550 +[15227] Forked 22551 +(22550) found +(22551) found +[15226] Forked 22552 +[15225] Forked 22553 +(22552) found +(22553) found +[15224] Forked 22554 +[15223] Forked 22555 +(22554) found +(22555) found +[15222] Forked 22556 +[15221] Forked 22557 +(22556) found +(22557) found +[15220] Forked 22558 +[15219] Forked 22559 +(22558) found +(22559) found +[15218] Forked 22560 +[15217] Forked 22561 +(22560) found +(22561) found +[15216] Forked 22562 +[15215] Forked 22563 +(22563) found +(22562) found +[15214] Forked 22564 +(22564) found +[15213] Forked 22565 +(22565) found +[15212] Forked 22566 +(22566) found +[15211] Forked 22567 +(22567) found +[15210] Forked 22568 +(22568) found +[15209] Forked 22569 +(22569) found +[15208] Forked 22570 +(22570) found +[15207] Forked 22571 +(22571) found +[15206] Forked 22572 +(22572) found +[15205] Forked 22573 +(22573) found +[15204] Forked 22574 +(22574) found +[15203] Forked 22575 +(22575) found +[15202] Forked 22576 +(22576) found +[15201] Forked 22577 +(22577) found +[15200] Forked 22578 +(22578) found +[15199] Forked 22579 +(22579) found +[15198] Forked 22580 +(22580) found +[15197] Forked 22581 +(22581) found +[15196] Forked 22582 +(22582) found +[15195] Forked 22583 +(22583) found +[15194] Forked 22584 +(22584) found +[15193] Forked 22585 +[15192] Forked 22586 +(22585) found +(22586) found +[15191] Forked 22587 +[15190] Forked 22588 +(22587) found +(22588) found +[15189] Forked 22589 +[15188] Forked 22590 +(22589) found +(22590) found +[15187] Forked 22591 +[15186] Forked 22592 +(22591) found +(22592) found +[15185] Forked 22593 +[15184] Forked 22594 +(22593) found +(22594) found +[15183] Forked 22595 +[15182] Forked 22596 +(22595) found +(22596) found +[15181] Forked 22597 +[15180] Forked 22598 +(22597) found +(22598) found +[15179] Forked 22599 +[15178] Forked 22600 +(22599) found +(22600) found +[15177] Forked 22601 +[15176] Forked 22602 +(22601) found +(22602) found +[15175] Forked 22603 +[15174] Forked 22604 +(22603) found +(22604) found +[15173] Forked 22605 +[15172] Forked 22606 +(22605) found +(22606) found +[15171] Forked 22607 +[15170] Forked 22608 +(22607) found +(22608) found +[15169] Forked 22609 +[15168] Forked 22610 +(22609) found +(22610) found +[15167] Forked 22611 +[15166] Forked 22612 +(22611) found +(22612) found +[15165] Forked 22613 +[15164] Forked 22614 +(22613) found +(22614) found +[15163] Forked 22615 +[15162] Forked 22616 +(22615) found +(22616) found +[15161] Forked 22617 +[15160] Forked 22618 +(22617) found +(22618) found +[15159] Forked 22619 +[15158] Forked 22620 +(22619) found +(22620) found +[15157] Forked 22621 +[15156] Forked 22622 +(22621) found +(22622) found +[15155] Forked 22623 +[15154] Forked 22624 +(22623) found +(22624) found +[15153] Forked 22625 +[15152] Forked 22627 +(22625) found +(22627) found +[15151] Forked 22628 +(22628) found +[15150] Forked 22629 +(22629) found +[15149] Forked 22630 +(22630) found +[15148] Forked 22631 +(22631) found +[15147] Forked 22632 +(22632) found +[15146] Forked 22633 +(22633) found +[15145] Forked 22634 +(22634) found +[15144] Forked 22635 +(22635) found +[15143] Forked 22636 +(22636) found +[15142] Forked 22637 +(22637) found +[15141] Forked 22638 +(22638) found +[15140] Forked 22639 +(22639) found +[15139] Forked 22640 +(22640) found +[15138] Forked 22641 +(22641) found +[15137] Forked 22642 +(22642) found +[15136] Forked 22644 +(22644) found +[15135] Forked 22645 +(22645) found +[15134] Forked 22646 +(22646) found +[15133] Forked 22647 +(22647) found +[15132] Forked 22648 +(22648) found +[15131] Forked 22649 +(22649) found +[15130] Forked 22650 +(22650) found +[15129] Forked 22651 +(22651) found +[15128] Forked 22652 +(22652) found +[15127] Forked 22653 +(22653) found +[15126] Forked 22654 +(22654) found +[15125] Forked 22655 +(22655) found +[15124] Forked 22656 +(22656) found +[15123] Forked 22657 +(22657) found +[15122] Forked 22658 +(22658) found +[15121] Forked 22659 +(22659) found +[15120] Forked 22660 +(22660) found +[15119] Forked 22661 +(22661) found +[15118] Forked 22662 +(22662) found +[15117] Forked 22663 +(22663) found +[15116] Forked 22664 +(22664) found +[15115] Forked 22665 +(22665) found +[15114] Forked 22666 +(22666) found +[15113] Forked 22667 +(22667) found +[15112] Forked 22668 +(22668) found +[15111] Forked 22669 +(22669) found +[15110] Forked 22670 +(22670) found +[15109] Forked 22671 +(22671) found +[15108] Forked 22672 +(22672) found +[15107] Forked 22673 +(22673) found +[15106] Forked 22674 +(22674) found +[15105] Forked 22675 +(22675) found +[15104] Forked 22676 +(22676) found +[15103] Forked 22677 +(22677) found +[15102] Forked 22678 +(22678) found +[15101] Forked 22679 +(22679) found +[15100] Forked 22680 +(22680) found +[15099] Forked 22681 +(22681) found +[15098] Forked 22682 +(22682) found +[15097] Forked 22683 +(22683) found +[15096] Forked 22684 +(22684) found +[15095] Forked 22685 +(22685) found +[15094] Forked 22686 +(22686) found +[15093] Forked 22687 +(22687) found +[15092] Forked 22688 +(22688) found +[15091] Forked 22689 +(22689) found +[15090] Forked 22690 +(22690) found +[15089] Forked 22691 +(22691) found +[15088] Forked 22692 +(22692) found +[15087] Forked 22693 +(22693) found +[15086] Forked 22694 +(22694) found +[15085] Forked 22695 +(22695) found +[15084] Forked 22696 +(22696) found +[15083] Forked 22697 +(22697) found +[15082] Forked 22698 +(22698) found +[15081] Forked 22699 +(22699) found +[15080] Forked 22700 +(22700) found +[15079] Forked 22701 +(22701) found +[15078] Forked 22702 +(22702) found +[15077] Forked 22703 +(22703) found +[15076] Forked 22704 +[15075] Forked 22705 +(22704) found +(22705) found +[15074] Forked 22706 +[15073] Forked 22707 +(22706) found +(22707) found +[15072] Forked 22708 +[15071] Forked 22709 +(22708) found +(22709) found +[15070] Forked 22710 +[15069] Forked 22711 +(22710) found +(22711) found +[15068] Forked 22712 +[15067] Forked 22713 +(22712) found +(22713) found +[15066] Forked 22714 +[15065] Forked 22715 +(22714) found +(22715) found +[15064] Forked 22716 +[15063] Forked 22717 +(22716) found +(22717) found +[15062] Forked 22718 +[15061] Forked 22719 +(22718) found +(22719) found +[15060] Forked 22720 +[15059] Forked 22721 +(22720) found +(22721) found +[15058] Forked 22722 +[15057] Forked 22723 +(22722) found +(22723) found +[15056] Forked 22724 +[15055] Forked 22725 +(22724) found +(22725) found +[15054] Forked 22726 +[15053] Forked 22727 +(22726) found +(22727) found +[15052] Forked 22728 +[15051] Forked 22729 +(22728) found +(22729) found +[15050] Forked 22730 +[15049] Forked 22731 +(22730) found +(22731) found +[15048] Forked 22732 +[15047] Forked 22733 +(22732) found +(22733) found +[15046] Forked 22734 +[15045] Forked 22735 +(22734) found +(22735) found +[15044] Forked 22736 +[15043] Forked 22737 +(22736) found +(22737) found +[15042] Forked 22738 +[15041] Forked 22739 +(22738) found +(22739) found +[15040] Forked 22740 +[15039] Forked 22741 +(22740) found +(22741) found +[15038] Forked 22742 +[15037] Forked 22743 +(22742) found +(22743) found +[15036] Forked 22744 +[15035] Forked 22745 +(22744) found +(22745) found +[15034] Forked 22746 +[15033] Forked 22747 +(22746) found +(22747) found +[15032] Forked 22748 +(22748) found +[15031] Forked 22749 +(22749) found +[15030] Forked 22750 +(22750) found +[15029] Forked 22751 +(22751) found +[15028] Forked 22752 +(22752) found +[15027] Forked 22753 +(22753) found +[15026] Forked 22754 +(22754) found +[15025] Forked 22755 +(22755) found +[15024] Forked 22756 +(22756) found +[15023] Forked 22757 +(22757) found +[15022] Forked 22758 +(22758) found +[15021] Forked 22759 +(22759) found +[15020] Forked 22760 +(22760) found +[15019] Forked 22761 +(22761) found +[15018] Forked 22762 +(22762) found +[15017] Forked 22763 +(22763) found +[15016] Forked 22764 +(22764) found +[15015] Forked 22765 +(22765) found +[15014] Forked 22766 +(22766) found +[15013] Forked 22767 +(22767) found +[15012] Forked 22768 +(22768) found +[15011] Forked 22769 +(22769) found +[15010] Forked 22770 +(22770) found +[15009] Forked 22771 +(22771) found +[15008] Forked 22772 +(22772) found +[15007] Forked 22773 +(22773) found +[15006] Forked 22774 +(22774) found +[15005] Forked 22775 +(22775) found +[15004] Forked 22776 +(22776) found +[15003] Forked 22777 +(22777) found +[15002] Forked 22778 +(22778) found +[15001] Forked 22779 +(22779) found +[15000] Forked 22780 +(22780) found +[14999] Forked 22781 +(22781) found +[14998] Forked 22782 +(22782) found +[14997] Forked 22783 +(22783) found +[14996] Forked 22784 +[14995] Forked 22785 +(22784) found +(22785) found +[14994] Forked 22786 +[14993] Forked 22787 +(22786) found +(22787) found +[14992] Forked 22788 +[14991] Forked 22789 +(22788) found +(22789) found +[14990] Forked 22790 +[14989] Forked 22791 +(22790) found +(22791) found +[14988] Forked 22792 +[14987] Forked 22793 +(22792) found +(22793) found +[14986] Forked 22794 +[14985] Forked 22795 +(22794) found +(22795) found +[14984] Forked 22796 +[14983] Forked 22797 +(22796) found +(22797) found +[14982] Forked 22798 +[14981] Forked 22799 +(22798) found +(22799) found +[14980] Forked 22800 +[14979] Forked 22801 +(22800) found +(22801) found +[14978] Forked 22802 +[14977] Forked 22803 +(22802) found +(22803) found +[14976] Forked 22804 +[14975] Forked 22805 +(22804) found +(22805) found +[14974] Forked 22806 +[14973] Forked 22807 +(22806) found +(22807) found +[14972] Forked 22808 +[14971] Forked 22809 +(22808) found +(22809) found +[14970] Forked 22810 +[14969] Forked 22811 +(22810) found +(22811) found +[14968] Forked 22812 +[14967] Forked 22813 +(22812) found +(22813) found +[14966] Forked 22814 +[14965] Forked 22815 +(22814) found +(22815) found +[14964] Forked 22816 +[14963] Forked 22817 +(22816) found +(22817) found +[14962] Forked 22818 +[14961] Forked 22819 +(22818) found +(22819) found +[14960] Forked 22820 +[14959] Forked 22821 +(22820) found +(22821) found +[14958] Forked 22822 +[14957] Forked 22824 +(22822) found +(22824) found +[14956] Forked 22825 +(22825) found +[14955] Forked 22826 +(22826) found +[14954] Forked 22827 +(22827) found +[14953] Forked 22828 +(22828) found +[14952] Forked 22829 +(22829) found +[14951] Forked 22830 +(22830) found +[14950] Forked 22831 +(22831) found +[14949] Forked 22832 +(22832) found +[14948] Forked 22833 +(22833) found +[14947] Forked 22834 +(22834) found +[14946] Forked 22835 +(22835) found +[14945] Forked 22836 +(22836) found +[14944] Forked 22837 +(22837) found +[14943] Forked 22838 +(22838) found +[14942] Forked 22839 +(22839) found +[14941] Forked 22840 +(22840) found +[14940] Forked 22841 +(22841) found +[14939] Forked 22842 +(22842) found +[14938] Forked 22843 +(22843) found +[14937] Forked 22844 +(22844) found +[14936] Forked 22845 +(22845) found +[14935] Forked 22846 +(22846) found +[14934] Forked 22847 +(22847) found +[14933] Forked 22848 +(22848) found +[14932] Forked 22849 +(22849) found +[14931] Forked 22850 +(22850) found +[14930] Forked 22851 +(22851) found +[14929] Forked 22852 +(22852) found +[14928] Forked 22853 +(22853) found +[14927] Forked 22854 +(22854) found +[14926] Forked 22855 +(22855) found +[14925] Forked 22856 +(22856) found +[14924] Forked 22857 +(22857) found +[14923] Forked 22858 +(22858) found +[14922] Forked 22859 +(22859) found +[14921] Forked 22860 +(22860) found +[14920] Forked 22861 +(22861) found +[14919] Forked 22862 +(22862) found +[14918] Forked 22863 +[14917] Forked 22864 +(22863) found +(22864) found +[14916] Forked 22865 +[14915] Forked 22866 +(22865) found +(22866) found +[14914] Forked 22867 +[14913] Forked 22868 +(22867) found +(22868) found +[14912] Forked 22869 +[14911] Forked 22870 +(22869) found +(22870) found +[14910] Forked 22871 +[14909] Forked 22872 +(22871) found +(22872) found +[14908] Forked 22873 +[14907] Forked 22874 +(22873) found +(22874) found +[14906] Forked 22875 +[14905] Forked 22876 +(22875) found +(22876) found +[14904] Forked 22877 +[14903] Forked 22878 +(22877) found +(22878) found +[14902] Forked 22879 +[14901] Forked 22880 +(22879) found +(22880) found +[14900] Forked 22881 +[14899] Forked 22882 +(22881) found +(22882) found +[14898] Forked 22883 +[14897] Forked 22884 +(22883) found +(22884) found +[14896] Forked 22885 +[14895] Forked 22886 +(22885) found +(22886) found +[14894] Forked 22887 +[14893] Forked 22888 +(22887) found +(22888) found +[14892] Forked 22889 +[14891] Forked 22890 +(22889) found +(22890) found +[14890] Forked 22891 +[14889] Forked 22892 +(22891) found +(22892) found +[14888] Forked 22893 +[14887] Forked 22894 +(22893) found +(22894) found +[14886] Forked 22895 +[14885] Forked 22896 +(22895) found +(22896) found +[14884] Forked 22897 +[14883] Forked 22898 +(22897) found +(22898) found +[14882] Forked 22899 +[14881] Forked 22900 +(22899) found +(22900) found +[14880] Forked 22901 +[14879] Forked 22902 +(22901) found +(22902) found +[14878] Forked 22903 +[14877] Forked 22904 +(22903) found +(22904) found +[14876] Forked 22905 +[14875] Forked 22906 +(22905) found +(22906) found +[14874] Forked 22907 +(22907) found +[14873] Forked 22908 +(22908) found +[14872] Forked 22909 +(22909) found +[14871] Forked 22910 +(22910) found +[14870] Forked 22911 +(22911) found +[14869] Forked 22912 +(22912) found +[14868] Forked 22913 +(22913) found +[14867] Forked 22914 +(22914) found +[14866] Forked 22915 +(22915) found +[14865] Forked 22916 +(22916) found +[14864] Forked 22917 +(22917) found +[14863] Forked 22918 +(22918) found +[14862] Forked 22919 +(22919) found +[14861] Forked 22920 +(22920) found +[14860] Forked 22921 +(22921) found +[14859] Forked 22922 +(22922) found +[14858] Forked 22923 +(22923) found +[14857] Forked 22924 +(22924) found +[14856] Forked 22925 +(22925) found +[14855] Forked 22926 +(22926) found +[14854] Forked 22927 +(22927) found +[14853] Forked 22928 +(22928) found +[14852] Forked 22929 +(22929) found +[14851] Forked 22930 +(22930) found +[14850] Forked 22931 +(22931) found +[14849] Forked 22932 +(22932) found +[14848] Forked 22933 +(22933) found +[14847] Forked 22934 +(22934) found +[14846] Forked 22935 +(22935) found +[14845] Forked 22936 +(22936) found +[14844] Forked 22937 +(22937) found +[14843] Forked 22938 +(22938) found +[14842] Forked 22939 +(22939) found +[14841] Forked 22940 +(22940) found +[14840] Forked 22941 +(22941) found +[14839] Forked 22942 +(22942) found +[14838] Forked 22943 +(22943) found +[14837] Forked 22944 +(22944) found +[14836] Forked 22945 +(22945) found +[14835] Forked 22946 +[14834] Forked 22947 +(22946) found +(22947) found +[14833] Forked 22948 +[14832] Forked 22949 +(22948) found +(22949) found +[14831] Forked 22950 +[14830] Forked 22951 +(22950) found +(22951) found +[14829] Forked 22952 +[14828] Forked 22953 +(22952) found +(22953) found +[14827] Forked 22954 +[14826] Forked 22955 +(22954) found +(22955) found +[14825] Forked 22956 +[14824] Forked 22957 +(22956) found +(22957) found +[14823] Forked 22958 +[14822] Forked 22959 +(22958) found +(22959) found +[14821] Forked 22960 +[14820] Forked 22961 +(22960) found +(22961) found +[14819] Forked 22962 +[14818] Forked 22963 +(22962) found +(22963) found +[14817] Forked 22964 +[14816] Forked 22965 +(22964) found +(22965) found +[14815] Forked 22966 +[14814] Forked 22967 +(22966) found +(22967) found +[14813] Forked 22968 +[14812] Forked 22969 +(22968) found +(22969) found +[14811] Forked 22970 +[14810] Forked 22971 +(22970) found +(22971) found +[14809] Forked 22972 +[14808] Forked 22973 +(22972) found +(22973) found +[14807] Forked 22974 +[14806] Forked 22975 +(22974) found +(22975) found +[14805] Forked 22976 +[14804] Forked 22977 +(22976) found +(22977) found +[14803] Forked 22978 +[14802] Forked 22979 +(22978) found +(22979) found +[14801] Forked 22980 +[14800] Forked 22981 +(22980) found +(22981) found +[14799] Forked 22982 +[14798] Forked 22983 +(22982) found +(22983) found +[14797] Forked 22984 +[14796] Forked 22985 +(22984) found +(22985) found +[14795] Forked 22986 +[14794] Forked 22987 +(22986) found +(22987) found +[14793] Forked 22988 +[14792] Forked 22989 +(22988) found +(22989) found +[14791] Forked 22990 +(22990) found +[14790] Forked 22991 +(22991) found +[14789] Forked 22992 +(22992) found +[14788] Forked 22993 +(22993) found +[14787] Forked 22994 +(22994) found +[14786] Forked 22995 +(22995) found +[14785] Forked 22996 +(22996) found +[14784] Forked 22997 +(22997) found +[14783] Forked 22998 +(22998) found +[14782] Forked 22999 +(22999) found +[14781] Forked 23000 +(23000) found +[14780] Forked 23001 +(23001) found +[14779] Forked 23002 +(23002) found +[14778] Forked 23003 +(23003) found +[14777] Forked 23004 +(23004) found +[14776] Forked 23005 +(23005) found +[14775] Forked 23006 +(23006) found +[14774] Forked 23007 +(23007) found +[14773] Forked 23008 +(23008) found +[14772] Forked 23009 +(23009) found +[14771] Forked 23010 +(23010) found +[14770] Forked 23011 +(23011) found +[14769] Forked 23012 +(23012) found +[14768] Forked 23013 +(23013) found +[14767] Forked 23014 +(23014) found +[14766] Forked 23015 +(23015) found +[14765] Forked 23016 +(23016) found +[14764] Forked 23017 +(23017) found +[14763] Forked 23018 +(23018) found +[14762] Forked 23019 +(23019) found +[14761] Forked 23020 +(23020) found +[14760] Forked 23021 +(23021) found +[14759] Forked 23022 +(23022) found +[14758] Forked 23023 +(23023) found +[14757] Forked 23024 +(23024) found +[14756] Forked 23025 +(23025) found +[14755] Forked 23026 +(23026) found +[14754] Forked 23027 +(23027) found +[14753] Forked 23028 +(23028) found +[14752] Forked 23029 +[14751] Forked 23030 +(23029) found +(23030) found +[14750] Forked 23031 +[14749] Forked 23032 +(23031) found +(23032) found +[14748] Forked 23033 +[14747] Forked 23034 +(23033) found +(23034) found +[14746] Forked 23035 +[14745] Forked 23036 +(23035) found +(23036) found +[14744] Forked 23037 +[14743] Forked 23038 +(23037) found +(23038) found +[14742] Forked 23039 +[14741] Forked 23040 +(23039) found +(23040) found +[14740] Forked 23041 +[14739] Forked 23042 +(23041) found +(23042) found +[14738] Forked 23043 +[14737] Forked 23044 +(23043) found +(23044) found +[14736] Forked 23045 +[14735] Forked 23046 +(23045) found +(23046) found +[14734] Forked 23047 +[14733] Forked 23048 +(23047) found +(23048) found +[14732] Forked 23049 +[14731] Forked 23050 +(23049) found +(23050) found +[14730] Forked 23051 +[14729] Forked 23052 +(23051) found +(23052) found +[14728] Forked 23053 +[14727] Forked 23054 +(23053) found +(23054) found +[14726] Forked 23055 +[14725] Forked 23056 +(23055) found +(23056) found +[14724] Forked 23057 +[14723] Forked 23058 +(23057) found +(23058) found +[14722] Forked 23059 +[14721] Forked 23060 +(23059) found +(23060) found +[14720] Forked 23061 +[14719] Forked 23062 +(23061) found +(23062) found +[14718] Forked 23063 +[14717] Forked 23064 +(23063) found +(23064) found +[14716] Forked 23065 +[14715] Forked 23066 +(23065) found +(23066) found +[14714] Forked 23067 +[14713] Forked 23069 +(23067) found +(23069) found +[14712] Forked 23070 +(23070) found +[14711] Forked 23071 +(23071) found +[14710] Forked 23072 +(23072) found +[14709] Forked 23073 +(23073) found +[14708] Forked 23074 +(23074) found +[14707] Forked 23075 +(23075) found +[14706] Forked 23076 +(23076) found +[14705] Forked 23077 +(23077) found +[14704] Forked 23078 +(23078) found +[14703] Forked 23079 +(23079) found +[14702] Forked 23080 +(23080) found +[14701] Forked 23081 +(23081) found +[14700] Forked 23082 +(23082) found +[14699] Forked 23083 +(23083) found +[14698] Forked 23084 +(23084) found +[14697] Forked 23085 +(23085) found +[14696] Forked 23086 +(23086) found +[14695] Forked 23087 +(23087) found +[14694] Forked 23088 +(23088) found +[14693] Forked 23089 +(23089) found +[14692] Forked 23090 +(23090) found +[14691] Forked 23091 +(23091) found +[14690] Forked 23092 +(23092) found +[14689] Forked 23093 +(23093) found +[14688] Forked 23094 +(23094) found +[14687] Forked 23095 +(23095) found +[14686] Forked 23096 +(23096) found +[14685] Forked 23097 +(23097) found +[14684] Forked 23098 +(23098) found +[14683] Forked 23099 +(23099) found +[14682] Forked 23100 +(23100) found +[14681] Forked 23101 +(23101) found +[14680] Forked 23102 +(23102) found +[14679] Forked 23103 +(23103) found +[14678] Forked 23104 +(23104) found +[14677] Forked 23105 +(23105) found +[14676] Forked 23106 +(23106) found +[14675] Forked 23107 +(23107) found +[14674] Forked 23108 +(23108) found +[14673] Forked 23109 +(23109) found +[14672] Forked 23110 +(23110) found +[14671] Forked 23111 +(23111) found +[14670] Forked 23112 +(23112) found +[14669] Forked 23113 +(23113) found +[14668] Forked 23114 +(23114) found +[14667] Forked 23115 +(23115) found +[14666] Forked 23116 +(23116) found +[14665] Forked 23117 +(23117) found +[14664] Forked 23118 +(23118) found +[14663] Forked 23119 +(23119) found +[14662] Forked 23120 +(23120) found +[14661] Forked 23121 +(23121) found +[14660] Forked 23122 +(23122) found +[14659] Forked 23123 +(23123) found +[14658] Forked 23124 +(23124) found +[14657] Forked 23125 +(23125) found +[14656] Forked 23126 +(23126) found +[14655] Forked 23127 +(23127) found +[14654] Forked 23128 +(23128) found +[14653] Forked 23129 +(23129) found +[14652] Forked 23130 +(23130) found +[14651] Forked 23131 +(23131) found +[14650] Forked 23132 +(23132) found +[14649] Forked 23133 +(23133) found +[14648] Forked 23134 +(23134) found +[14647] Forked 23135 +(23135) found +[14646] Forked 23136 +(23136) found +[14645] Forked 23137 +(23137) found +[14644] Forked 23138 +(23138) found +[14643] Forked 23139 +(23139) found +[14642] Forked 23140 +(23140) found +[14641] Forked 23141 +(23141) found +[14640] Forked 23142 +[14639] Forked 23143 +(23142) found +(23143) found +[14638] Forked 23144 +[14637] Forked 23145 +(23144) found +(23145) found +[14636] Forked 23146 +[14635] Forked 23147 +(23146) found +(23147) found +[14634] Forked 23148 +[14633] Forked 23149 +(23148) found +(23149) found +[14632] Forked 23150 +[14631] Forked 23151 +(23150) found +(23151) found +[14630] Forked 23152 +[14629] Forked 23153 +(23152) found +(23153) found +[14628] Forked 23154 +[14627] Forked 23155 +(23154) found +(23155) found +[14626] Forked 23156 +[14625] Forked 23157 +(23156) found +(23157) found +[14624] Forked 23158 +[14623] Forked 23159 +(23158) found +(23159) found +[14622] Forked 23160 +[14621] Forked 23161 +(23160) found +(23161) found +[14620] Forked 23162 +[14619] Forked 23163 +(23162) found +(23163) found +[14618] Forked 23164 +[14617] Forked 23165 +(23164) found +(23165) found +[14616] Forked 23166 +[14615] Forked 23167 +(23166) found +(23167) found +[14614] Forked 23168 +[14613] Forked 23169 +(23169) found +(23168) found +[14612] Forked 23170 +(23170) found +[14611] Forked 23171 +(23171) found +[14610] Forked 23172 +(23172) found +[14609] Forked 23173 +(23173) found +[14608] Forked 23174 +(23174) found +[14607] Forked 23175 +(23175) found +[14606] Forked 23176 +(23176) found +[14605] Forked 23177 +(23177) found +[14604] Forked 23178 +(23178) found +[14603] Forked 23179 +(23179) found +[14602] Forked 23180 +(23180) found +[14601] Forked 23181 +(23181) found +[14600] Forked 23182 +(23182) found +[14599] Forked 23183 +(23183) found +[14598] Forked 23184 +(23184) found +[14597] Forked 23185 +(23185) found +[14596] Forked 23186 +(23186) found +[14595] Forked 23187 +(23187) found +[14594] Forked 23188 +(23188) found +[14593] Forked 23189 +(23189) found +[14592] Forked 23190 +(23190) found +[14591] Forked 23191 +(23191) found +[14590] Forked 23192 +(23192) found +[14589] Forked 23193 +(23193) found +[14588] Forked 23194 +(23194) found +[14587] Forked 23195 +(23195) found +[14586] Forked 23196 +(23196) found +[14585] Forked 23197 +(23197) found +[14584] Forked 23198 +(23198) found +[14583] Forked 23199 +(23199) found +[14582] Forked 23200 +(23200) found +[14581] Forked 23201 +(23201) found +[14580] Forked 23202 +(23202) found +[14579] Forked 23203 +(23203) found +[14578] Forked 23204 +(23204) found +[14577] Forked 23205 +(23205) found +[14576] Forked 23206 +(23206) found +[14575] Forked 23207 +(23207) found +[14574] Forked 23208 +(23208) found +[14573] Forked 23209 +(23209) found +[14572] Forked 23210 +(23210) found +[14571] Forked 23211 +(23211) found +[14570] Forked 23212 +(23212) found +[14569] Forked 23213 +(23213) found +[14568] Forked 23214 +(23214) found +[14567] Forked 23215 +(23215) found +[14566] Forked 23216 +(23216) found +[14565] Forked 23217 +(23217) found +[14564] Forked 23218 +(23218) found +[14563] Forked 23219 +(23219) found +[14562] Forked 23220 +[14561] Forked 23221 +(23220) found +(23221) found +[14560] Forked 23222 +[14559] Forked 23223 +(23222) found +(23223) found +[14558] Forked 23224 +[14557] Forked 23225 +(23224) found +(23225) found +[14556] Forked 23226 +[14555] Forked 23227 +(23226) found +(23227) found +[14554] Forked 23228 +[14553] Forked 23229 +(23228) found +(23229) found +[14552] Forked 23230 +[14551] Forked 23231 +(23230) found +(23231) found +[14550] Forked 23232 +[14549] Forked 23233 +(23232) found +(23233) found +[14548] Forked 23234 +[14547] Forked 23235 +(23234) found +(23235) found +[14546] Forked 23236 +[14545] Forked 23237 +(23236) found +(23237) found +[14544] Forked 23238 +[14543] Forked 23239 +(23238) found +(23239) found +[14542] Forked 23240 +[14541] Forked 23241 +(23240) found +(23241) found +[14540] Forked 23242 +[14539] Forked 23243 +(23242) found +(23243) found +[14538] Forked 23244 +[14537] Forked 23245 +(23244) found +(23245) found +[14536] Forked 23246 +[14535] Forked 23247 +(23246) found +(23247) found +[14534] Forked 23248 +[14533] Forked 23249 +(23248) found +(23249) found +[14532] Forked 23250 +[14531] Forked 23251 +(23250) found +(23251) found +[14530] Forked 23252 +[14529] Forked 23253 +(23252) found +(23253) found +[14528] Forked 23254 +[14527] Forked 23255 +(23254) found +(23255) found +[14526] Forked 23256 +[14525] Forked 23257 +(23256) found +(23257) found +[14524] Forked 23258 +[14523] Forked 23259 +(23258) found +(23259) found +[14522] Forked 23260 +[14521] Forked 23261 +(23260) found +(23261) found +[14520] Forked 23262 +[14519] Forked 23263 +(23262) found +(23263) found +[14518] Forked 23264 +[14517] Forked 23265 +(23264) found +(23265) found +[14516] Forked 23266 +[14515] Forked 23267 +(23266) found +(23267) found +[14514] Forked 23268 +[14513] Forked 23269 +(23268) found +(23269) found +[14512] Forked 23270 +[14511] Forked 23271 +(23270) found +(23271) found +[14510] Forked 23272 +[14509] Forked 23273 +(23272) found +(23273) found +[14508] Forked 23274 +[14507] Forked 23275 +(23274) found +(23275) found +[14506] Forked 23276 +[14505] Forked 23277 +(23276) found +(23277) found +[14504] Forked 23278 +[14503] Forked 23279 +(23278) found +(23279) found +[14502] Forked 23280 +[14501] Forked 23281 +(23280) found +(23281) found +[14500] Forked 23282 +[14499] Forked 23283 +(23282) found +(23283) found +[14498] Forked 23284 +[14497] Forked 23285 +(23284) found +(23285) found +[14496] Forked 23286 +[14495] Forked 23287 +(23286) found +(23287) found +[14494] Forked 23288 +[14493] Forked 23289 +(23288) found +(23289) found +[14492] Forked 23290 +[14491] Forked 23291 +(23290) found +(23291) found +[14490] Forked 23292 +[14489] Forked 23293 +(23292) found +(23293) found +[14488] Forked 23294 +[14487] Forked 23295 +(23294) found +(23295) found +[14486] Forked 23296 +[14485] Forked 23297 +(23296) found +(23297) found +[14484] Forked 23298 +[14483] Forked 23299 +(23298) found +(23299) found +[14482] Forked 23300 +[14481] Forked 23301 +(23300) found +(23301) found +[14480] Forked 23302 +[14479] Forked 23303 +(23302) found +(23303) found +[14478] Forked 23304 +[14477] Forked 23305 +(23304) found +(23305) found +[14476] Forked 23306 +[14475] Forked 23307 +(23306) found +(23307) found +[14474] Forked 23308 +[14473] Forked 23309 +(23308) found +(23309) found +[14472] Forked 23310 +[14471] Forked 23311 +(23310) found +(23311) found +[14470] Forked 23312 +(23312) found +[14469] Forked 23313 +(23313) found +[14468] Forked 23314 +(23314) found +[14467] Forked 23315 +(23315) found +[14466] Forked 23316 +(23316) found +[14465] Forked 23317 +(23317) found +[14464] Forked 23318 +(23318) found +[14463] Forked 23319 +(23319) found +[14462] Forked 23320 +(23320) found +[14461] Forked 23321 +(23321) found +[14460] Forked 23322 +(23322) found +[14459] Forked 23323 +(23323) found +[14458] Forked 23324 +(23324) found +[14457] Forked 23325 +(23325) found +[14456] Forked 23326 +(23326) found +[14455] Forked 23327 +(23327) found +[14454] Forked 23328 +(23328) found +[14453] Forked 23329 +(23329) found +[14452] Forked 23330 +(23330) found +[14451] Forked 23331 +(23331) found +[14450] Forked 23332 +(23332) found +[14449] Forked 23333 +(23333) found +[14448] Forked 23334 +(23334) found +[14447] Forked 23335 +(23335) found +[14446] Forked 23336 +(23336) found +[14445] Forked 23337 +(23337) found +[14444] Forked 23338 +(23338) found +[14443] Forked 23339 +(23339) found +[14442] Forked 23340 +(23340) found +[14441] Forked 23341 +(23341) found +[14440] Forked 23342 +(23342) found +[14439] Forked 23343 +(23343) found +[14438] Forked 23344 +(23344) found +[14437] Forked 23345 +(23345) found +[14436] Forked 23346 +(23346) found +[14435] Forked 23347 +(23347) found +[14434] Forked 23348 +(23348) found +[14433] Forked 23349 +(23349) found +[14432] Forked 23350 +[14431] Forked 23351 +(23350) found +(23351) found +[14430] Forked 23352 +[14429] Forked 23353 +(23352) found +(23353) found +[14428] Forked 23354 +[14427] Forked 23355 +(23354) found +(23355) found +[14426] Forked 23356 +[14425] Forked 23357 +(23356) found +(23357) found +[14424] Forked 23358 +[14423] Forked 23359 +(23358) found +(23359) found +[14422] Forked 23360 +[14421] Forked 23361 +(23360) found +(23361) found +[14420] Forked 23362 +[14419] Forked 23363 +(23362) found +(23363) found +[14418] Forked 23364 +[14417] Forked 23365 +(23364) found +(23365) found +[14416] Forked 23366 +(23366) found +[14415] Forked 23367 +(23367) found +[14414] Forked 23368 +[14413] Forked 23369 +(23368) found +(23369) found +[14412] Forked 23370 +[14411] Forked 23371 +(23370) found +(23371) found +[14410] Forked 23372 +[14409] Forked 23373 +(23372) found +(23373) found +[14408] Forked 23374 +[14407] Forked 23375 +(23374) found +(23375) found +[14406] Forked 23376 +[14405] Forked 23377 +(23376) found +(23377) found +[14404] Forked 23378 +[14403] Forked 23379 +(23378) found +(23379) found +[14402] Forked 23380 +[14401] Forked 23381 +(23380) found +(23381) found +[14400] Forked 23382 +[14399] Forked 23383 +(23382) found +(23383) found +[14398] Forked 23384 +[14397] Forked 23385 +(23384) found +(23385) found +[14396] Forked 23386 +[14395] Forked 23387 +(23386) found +(23387) found +[14394] Forked 23388 +[14393] Forked 23389 +(23388) found +(23389) found +[14392] Forked 23390 +[14391] Forked 23391 +(23390) found +(23391) found +[14390] Forked 23392 +[14389] Forked 23393 +(23392) found +(23393) found +[14388] Forked 23394 +[14387] Forked 23395 +(23394) found +(23395) found +[14386] Forked 23396 +[14385] Forked 23397 +(23396) found +(23397) found +[14384] Forked 23398 +[14383] Forked 23399 +(23398) found +(23399) found +[14382] Forked 23400 +[14381] Forked 23401 +(23400) found +(23401) found +[14380] Forked 23402 +[14379] Forked 23403 +(23402) found +(23403) found +[14378] Forked 23404 +[14377] Forked 23405 +(23404) found +(23405) found +[14376] Forked 23406 +[14375] Forked 23407 +(23406) found +(23407) found +[14374] Forked 23408 +[14373] Forked 23409 +(23408) found +(23409) found +[14372] Forked 23410 +[14371] Forked 23411 +(23410) found +(23411) found +[14370] Forked 23412 +[14369] Forked 23413 +(23412) found +(23413) found +[14368] Forked 23414 +[14367] Forked 23415 +(23414) found +(23415) found +[14366] Forked 23416 +[14365] Forked 23417 +(23416) found +(23417) found +[14364] Forked 23418 +[14363] Forked 23419 +(23419) found +(23418) found +[14362] Forked 23420 +(23420) found +[14361] Forked 23421 +(23421) found +[14360] Forked 23422 +(23422) found +[14359] Forked 23423 +(23423) found +[14358] Forked 23424 +(23424) found +[14357] Forked 23425 +(23425) found +[14356] Forked 23426 +(23426) found +[14355] Forked 23427 +(23427) found +[14354] Forked 23428 +(23428) found +[14353] Forked 23429 +(23429) found +[14352] Forked 23430 +(23430) found +[14351] Forked 23431 +(23431) found +[14350] Forked 23432 +(23432) found +[14349] Forked 23433 +(23433) found +[14348] Forked 23434 +(23434) found +[14347] Forked 23435 +(23435) found +[14346] Forked 23436 +(23436) found +[14345] Forked 23437 +(23437) found +[14344] Forked 23438 +(23438) found +[14343] Forked 23439 +(23439) found +[14342] Forked 23440 +(23440) found +[14341] Forked 23441 +(23441) found +[14340] Forked 23442 +(23442) found +[14339] Forked 23443 +(23443) found +[14338] Forked 23444 +(23444) found +[14337] Forked 23445 +(23445) found +[14336] Forked 23446 +(23446) found +[14335] Forked 23447 +(23447) found +[14334] Forked 23448 +(23448) found +[14333] Forked 23449 +(23449) found +[14332] Forked 23450 +(23450) found +[14331] Forked 23451 +(23451) found +[14330] Forked 23452 +(23452) found +[14329] Forked 23453 +(23453) found +[14328] Forked 23454 +(23454) found +[14327] Forked 23455 +(23455) found +[14326] Forked 23456 +(23456) found +[14325] Forked 23457 +(23457) found +[14324] Forked 23458 +(23458) found +[14323] Forked 23459 +(23459) found +[14322] Forked 23460 +(23460) found +[14321] Forked 23461 +(23461) found +[14320] Forked 23462 +(23462) found +[14319] Forked 23463 +(23463) found +[14318] Forked 23464 +(23464) found +[14317] Forked 23465 +(23465) found +[14316] Forked 23466 +(23466) found +[14315] Forked 23467 +(23467) found +[14314] Forked 23468 +(23468) found +[14313] Forked 23469 +[14312] Forked 23470 +(23469) found +(23470) found +[14311] Forked 23471 +[14310] Forked 23472 +(23471) found +(23472) found +[14309] Forked 23473 +[14308] Forked 23474 +(23473) found +(23474) found +[14307] Forked 23475 +[14306] Forked 23476 +(23475) found +(23476) found +[14305] Forked 23477 +[14304] Forked 23478 +(23477) found +(23478) found +[14303] Forked 23479 +[14302] Forked 23480 +(23479) found +(23480) found +[14301] Forked 23481 +[14300] Forked 23482 +(23481) found +(23482) found +[14299] Forked 23483 +[14298] Forked 23484 +(23483) found +(23484) found +[14297] Forked 23485 +[14296] Forked 23486 +(23485) found +(23486) found +[14295] Forked 23487 +[14294] Forked 23488 +(23487) found +(23488) found +[14293] Forked 23489 +[14292] Forked 23490 +(23489) found +(23490) found +[14291] Forked 23491 +[14290] Forked 23492 +(23491) found +(23492) found +[14289] Forked 23493 +[14288] Forked 23494 +(23493) found +(23494) found +[14287] Forked 23495 +[14286] Forked 23496 +(23495) found +(23496) found +[14285] Forked 23497 +[14284] Forked 23498 +(23497) found +(23498) found +[14283] Forked 23499 +[14282] Forked 23500 +(23499) found +(23500) found +[14281] Forked 23501 +[14280] Forked 23502 +(23501) found +(23502) found +[14279] Forked 23503 +[14278] Forked 23504 +(23503) found +(23504) found +[14277] Forked 23505 +[14276] Forked 23506 +(23505) found +(23506) found +[14275] Forked 23507 +[14274] Forked 23508 +(23507) found +(23508) found +[14273] Forked 23509 +[14272] Forked 23510 +(23509) found +(23510) found +[14271] Forked 23511 +[14270] Forked 23512 +(23511) found +(23512) found +[14269] Forked 23513 +[14268] Forked 23514 +(23513) found +(23514) found +[14267] Forked 23515 +[14266] Forked 23516 +(23516) found +(23515) found +[14265] Forked 23517 +(23517) found +[14264] Forked 23518 +(23518) found +[14263] Forked 23519 +(23519) found +[14262] Forked 23520 +(23520) found +[14261] Forked 23521 +(23521) found +[14260] Forked 23522 +(23522) found +[14259] Forked 23523 +(23523) found +[14258] Forked 23524 +(23524) found +[14257] Forked 23525 +(23525) found +[14256] Forked 23526 +(23526) found +[14255] Forked 23527 +(23527) found +[14254] Forked 23528 +(23528) found +[14253] Forked 23529 +(23529) found +[14252] Forked 23530 +(23530) found +[14251] Forked 23531 +(23531) found +[14250] Forked 23532 +(23532) found +[14249] Forked 23533 +(23533) found +[14248] Forked 23534 +(23534) found +[14247] Forked 23535 +(23535) found +[14246] Forked 23536 +(23536) found +[14245] Forked 23537 +(23537) found +[14244] Forked 23538 +(23538) found +[14243] Forked 23539 +(23539) found +[14242] Forked 23540 +(23540) found +[14241] Forked 23541 +(23541) found +[14240] Forked 23542 +(23542) found +[14239] Forked 23543 +(23543) found +[14238] Forked 23544 +(23544) found +[14237] Forked 23545 +(23545) found +[14236] Forked 23546 +(23546) found +[14235] Forked 23547 +(23547) found +[14234] Forked 23548 +(23548) found +[14233] Forked 23549 +(23549) found +[14232] Forked 23550 +(23550) found +[14231] Forked 23551 +(23551) found +[14230] Forked 23552 +(23552) found +[14229] Forked 23553 +(23553) found +[14228] Forked 23554 +(23554) found +[14227] Forked 23555 +(23555) found +[14226] Forked 23556 +(23556) found +[14225] Forked 23557 +(23557) found +[14224] Forked 23558 +(23558) found +[14223] Forked 23559 +(23559) found +[14222] Forked 23560 +(23560) found +[14221] Forked 23561 +(23561) found +[14220] Forked 23562 +(23562) found +[14219] Forked 23563 +(23563) found +[14218] Forked 23564 +(23564) found +[14217] Forked 23565 +(23565) found +[14216] Forked 23566 +(23566) found +[14215] Forked 23567 +(23567) found +[14214] Forked 23568 +(23568) found +[14213] Forked 23569 +(23569) found +[14212] Forked 23570 +(23570) found +[14211] Forked 23571 +(23571) found +[14210] Forked 23572 +(23572) found +[14209] Forked 23573 +(23573) found +[14208] Forked 23574 +(23574) found +[14207] Forked 23575 +(23575) found +[14206] Forked 23576 +(23576) found +[14205] Forked 23577 +(23577) found +[14204] Forked 23578 +(23578) found +[14203] Forked 23579 +(23579) found +[14202] Forked 23580 +(23580) found +[14201] Forked 23581 +(23581) found +[14200] Forked 23582 +(23582) found +[14199] Forked 23583 +(23583) found +[14198] Forked 23584 +(23584) found +[14197] Forked 23585 +[14196] Forked 23586 +(23585) found +(23586) found +[14195] Forked 23587 +[14194] Forked 23588 +(23587) found +(23588) found +[14193] Forked 23589 +[14192] Forked 23590 +(23589) found +(23590) found +[14191] Forked 23591 +[14190] Forked 23592 +(23591) found +(23592) found +[14189] Forked 23593 +[14188] Forked 23594 +(23593) found +(23594) found +[14187] Forked 23595 +[14186] Forked 23596 +(23595) found +(23596) found +[14185] Forked 23597 +[14184] Forked 23598 +(23597) found +(23598) found +[14183] Forked 23599 +[14182] Forked 23600 +(23599) found +(23600) found +[14181] Forked 23601 +[14180] Forked 23602 +(23601) found +(23602) found +[14179] Forked 23603 +[14178] Forked 23604 +(23603) found +(23604) found +[14177] Forked 23605 +[14176] Forked 23606 +(23605) found +(23606) found +[14175] Forked 23607 +[14174] Forked 23608 +(23607) found +(23608) found +[14173] Forked 23609 +[14172] Forked 23610 +(23609) found +(23610) found +[14171] Forked 23611 +[14170] Forked 23612 +(23611) found +(23612) found +[14169] Forked 23613 +[14168] Forked 23614 +(23613) found +(23614) found +[14167] Forked 23615 +[14166] Forked 23616 +(23615) found +(23616) found +[14165] Forked 23617 +[14164] Forked 23618 +(23617) found +(23618) found +[14163] Forked 23619 +[14162] Forked 23620 +(23619) found +(23620) found +[14161] Forked 23621 +[14160] Forked 23622 +(23621) found +(23622) found +[14159] Forked 23623 +[14158] Forked 23624 +(23623) found +(23624) found +[14157] Forked 23625 +[14156] Forked 23626 +(23625) found +(23626) found +[14155] Forked 23627 +[14154] Forked 23628 +(23627) found +(23628) found +[14153] Forked 23629 +[14152] Forked 23630 +(23629) found +(23630) found +[14151] Forked 23631 +[14150] Forked 23632 +(23631) found +(23632) found +[14149] Forked 23633 +[14148] Forked 23634 +(23633) found +(23634) found +[14147] Forked 23635 +[14146] Forked 23636 +(23635) found +(23636) found +[14145] Forked 23637 +[14144] Forked 23638 +(23637) found +(23638) found +[14143] Forked 23639 +[14142] Forked 23640 +(23639) found +(23640) found +[14141] Forked 23641 +[14140] Forked 23642 +(23641) found +(23642) found +[14139] Forked 23643 +[14138] Forked 23644 +(23643) found +(23644) found +[14137] Forked 23645 +[14136] Forked 23646 +(23645) found +(23646) found +[14135] Forked 23647 +[14134] Forked 23648 +(23647) found +(23648) found +[14133] Forked 23649 +[14132] Forked 23650 +(23649) found +(23650) found +[14131] Forked 23651 +[14130] Forked 23652 +(23651) found +(23652) found +[14129] Forked 23653 +[14128] Forked 23654 +(23653) found +(23654) found +[14127] Forked 23655 +[14126] Forked 23656 +(23655) found +(23656) found +[14125] Forked 23657 +[14124] Forked 23658 +(23657) found +(23658) found +[14123] Forked 23659 +[14122] Forked 23660 +(23659) found +(23660) found +[14121] Forked 23661 +[14120] Forked 23662 +(23661) found +(23662) found +[14119] Forked 23663 +[14118] Forked 23664 +(23663) found +(23664) found +[14117] Forked 23665 +[14116] Forked 23666 +(23665) found +(23666) found +[14115] Forked 23667 +[14114] Forked 23668 +(23667) found +(23668) found +[14113] Forked 23669 +[14112] Forked 23670 +(23669) found +(23670) found +[14111] Forked 23671 +[14110] Forked 23672 +(23671) found +(23672) found +[14109] Forked 23673 +[14108] Forked 23674 +(23673) found +(23674) found +[14107] Forked 23675 +[14106] Forked 23676 +(23675) found +(23676) found +[14105] Forked 23677 +[14104] Forked 23678 +(23677) found +(23678) found +[14103] Forked 23679 +[14102] Forked 23680 +(23679) found +(23680) found +[14101] Forked 23681 +[14100] Forked 23682 +(23681) found +(23682) found +[14099] Forked 23683 +[14098] Forked 23684 +(23683) found +(23684) found +[14097] Forked 23685 +[14096] Forked 23686 +(23685) found +(23686) found +[14095] Forked 23687 +[14094] Forked 23688 +(23687) found +(23688) found +[14093] Forked 23689 +[14092] Forked 23690 +(23689) found +(23690) found +[14091] Forked 23691 +[14090] Forked 23692 +(23691) found +(23692) found +[14089] Forked 23693 +[14088] Forked 23694 +(23693) found +(23694) found +[14087] Forked 23695 +[14086] Forked 23696 +(23695) found +(23696) found +[14085] Forked 23697 +[14084] Forked 23698 +(23697) found +(23698) found +[14083] Forked 23699 +[14082] Forked 23700 +(23699) found +(23700) found +[14081] Forked 23701 +[14080] Forked 23702 +(23701) found +(23702) found +[14079] Forked 23703 +[14078] Forked 23704 +(23703) found +(23704) found +[14077] Forked 23705 +[14076] Forked 23706 +(23705) found +(23706) found +[14075] Forked 23707 +[14074] Forked 23708 +(23707) found +(23708) found +[14073] Forked 23709 +[14072] Forked 23710 +(23709) found +(23710) found +[14071] Forked 23711 +[14070] Forked 23712 +(23711) found +(23712) found +[14069] Forked 23713 +[14068] Forked 23714 +(23713) found +(23714) found +[14067] Forked 23715 +[14066] Forked 23716 +(23715) found +(23716) found +[14065] Forked 23717 +[14064] Forked 23718 +(23717) found +(23718) found +[14063] Forked 23719 +(23719) found +[14062] Forked 23720 +(23720) found +[14061] Forked 23721 +(23721) found +[14060] Forked 23722 +(23722) found +[14059] Forked 23723 +(23723) found +[14058] Forked 23724 +(23724) found +[14057] Forked 23725 +(23725) found +[14056] Forked 23726 +(23726) found +[14055] Forked 23727 +(23727) found +[14054] Forked 23728 +(23728) found +[14053] Forked 23729 +(23729) found +[14052] Forked 23730 +(23730) found +[14051] Forked 23731 +(23731) found +[14050] Forked 23732 +(23732) found +[14049] Forked 23733 +(23733) found +[14048] Forked 23734 +(23734) found +[14047] Forked 23735 +(23735) found +[14046] Forked 23736 +(23736) found +[14045] Forked 23737 +(23737) found +[14044] Forked 23738 +(23738) found +[14043] Forked 23739 +(23739) found +[14042] Forked 23740 +(23740) found +[14041] Forked 23741 +(23741) found +[14040] Forked 23742 +(23742) found +[14039] Forked 23743 +(23743) found +[14038] Forked 23744 +(23744) found +[14037] Forked 23745 +(23745) found +[14036] Forked 23746 +(23746) found +[14035] Forked 23747 +(23747) found +[14034] Forked 23748 +(23748) found +[14033] Forked 23749 +(23749) found +[14032] Forked 23750 +(23750) found +[14031] Forked 23751 +(23751) found +[14030] Forked 23752 +(23752) found +[14029] Forked 23753 +(23753) found +[14028] Forked 23754 +(23754) found +[14027] Forked 23755 +(23755) found +[14026] Forked 23756 +(23756) found +[14025] Forked 23757 +[14024] Forked 23758 +(23757) found +(23758) found +[14023] Forked 23759 +[14022] Forked 23760 +(23759) found +(23760) found +[14021] Forked 23761 +[14020] Forked 23762 +(23761) found +(23762) found +[14019] Forked 23763 +[14018] Forked 23764 +(23763) found +(23764) found +[14017] Forked 23765 +[14016] Forked 23766 +(23765) found +(23766) found +[14015] Forked 23767 +[14014] Forked 23768 +(23767) found +(23768) found +[14013] Forked 23769 +[14012] Forked 23770 +(23769) found +(23770) found +[14011] Forked 23771 +[14010] Forked 23772 +(23771) found +(23772) found +[14009] Forked 23773 +[14008] Forked 23774 +(23773) found +(23774) found +[14007] Forked 23775 +[14006] Forked 23776 +(23775) found +(23776) found +[14005] Forked 23777 +[14004] Forked 23778 +(23777) found +(23778) found +[14003] Forked 23779 +[14002] Forked 23780 +(23779) found +(23780) found +[14001] Forked 23781 +[14000] Forked 23782 +(23781) found +(23782) found +[13999] Forked 23783 +[13998] Forked 23784 +(23783) found +(23784) found +[13997] Forked 23785 +[13996] Forked 23786 +(23785) found +(23786) found +[13995] Forked 23787 +[13994] Forked 23788 +(23787) found +(23788) found +[13993] Forked 23789 +[13992] Forked 23790 +(23789) found +(23790) found +[13991] Forked 23791 +[13990] Forked 23792 +(23791) found +(23792) found +[13989] Forked 23793 +[13988] Forked 23794 +(23793) found +(23794) found +[13987] Forked 23795 +[13986] Forked 23796 +(23795) found +(23796) found +[13985] Forked 23797 +[13984] Forked 23798 +(23797) found +(23798) found +[13983] Forked 23799 +[13982] Forked 23800 +(23799) found +(23800) found +[13981] Forked 23801 +[13980] Forked 23802 +(23801) found +(23802) found +[13979] Forked 23803 +[13978] Forked 23804 +(23803) found +(23804) found +[13977] Forked 23805 +[13976] Forked 23806 +(23805) found +(23806) found +[13975] Forked 23807 +[13974] Forked 23808 +(23807) found +(23808) found +[13973] Forked 23809 +[13972] Forked 23810 +(23809) found +(23810) found +[13971] Forked 23811 +[13970] Forked 23812 +(23811) found +(23812) found +[13969] Forked 23813 +[13968] Forked 23814 +(23813) found +(23814) found +[13967] Forked 23815 +[13966] Forked 23816 +(23815) found +(23816) found +[13965] Forked 23817 +[13964] Forked 23818 +(23817) found +(23818) found +[13963] Forked 23819 +[13962] Forked 23820 +(23819) found +(23820) found +[13961] Forked 23821 +[13960] Forked 23822 +(23821) found +(23822) found +[13959] Forked 23823 +[13958] Forked 23824 +(23823) found +(23824) found +[13957] Forked 23825 +[13956] Forked 23826 +(23825) found +(23826) found +[13955] Forked 23827 +[13954] Forked 23828 +(23827) found +(23828) found +[13953] Forked 23829 +[13952] Forked 23830 +(23829) found +(23830) found +[13951] Forked 23831 +[13950] Forked 23832 +(23831) found +(23832) found +[13949] Forked 23833 +[13948] Forked 23834 +(23833) found +(23834) found +[13947] Forked 23835 +[13946] Forked 23836 +(23835) found +(23836) found +[13945] Forked 23837 +[13944] Forked 23838 +(23837) found +(23838) found +[13943] Forked 23839 +[13942] Forked 23840 +(23839) found +(23840) found +[13941] Forked 23841 +[13940] Forked 23842 +(23841) found +(23842) found +[13939] Forked 23843 +[13938] Forked 23844 +(23843) found +(23844) found +[13937] Forked 23845 +[13936] Forked 23847 +(23845) found +(23847) found +[13935] Forked 23848 +(23848) found +[13934] Forked 23849 +(23849) found +[13933] Forked 23850 +(23850) found +[13932] Forked 23851 +(23851) found +[13931] Forked 23852 +(23852) found +[13930] Forked 23853 +(23853) found +[13929] Forked 23854 +(23854) found +[13928] Forked 23855 +(23855) found +[13927] Forked 23856 +(23856) found +[13926] Forked 23857 +(23857) found +[13925] Forked 23858 +(23858) found +[13924] Forked 23859 +(23859) found +[13923] Forked 23860 +(23860) found +[13922] Forked 23861 +(23861) found +[13921] Forked 23862 +(23862) found +[13920] Forked 23863 +(23863) found +[13919] Forked 23864 +(23864) found +[13918] Forked 23865 +(23865) found +[13917] Forked 23866 +(23866) found +[13916] Forked 23867 +(23867) found +[13915] Forked 23868 +(23868) found +[13914] Forked 23869 +(23869) found +[13913] Forked 23870 +(23870) found +[13912] Forked 23871 +(23871) found +[13911] Forked 23872 +(23872) found +[13910] Forked 23873 +(23873) found +[13909] Forked 23874 +(23874) found +[13908] Forked 23875 +(23875) found +[13907] Forked 23876 +(23876) found +[13906] Forked 23877 +(23877) found +[13905] Forked 23878 +(23878) found +[13904] Forked 23879 +(23879) found +[13903] Forked 23880 +(23880) found +[13902] Forked 23881 +(23881) found +[13901] Forked 23882 +(23882) found +[13900] Forked 23883 +(23883) found +[13899] Forked 23884 +(23884) found +[13898] Forked 23885 +(23885) found +[13897] Forked 23886 +(23886) found +[13896] Forked 23887 +(23887) found +[13895] Forked 23888 +(23888) found +[13894] Forked 23889 +(23889) found +[13893] Forked 23890 +(23890) found +[13892] Forked 23891 +(23891) found +[13891] Forked 23892 +(23892) found +[13890] Forked 23893 +(23893) found +[13889] Forked 23894 +(23894) found +[13888] Forked 23895 +(23895) found +[13887] Forked 23896 +(23896) found +[13886] Forked 23897 +(23897) found +[13885] Forked 23898 +(23898) found +[13884] Forked 23899 +(23899) found +[13883] Forked 23900 +(23900) found +[13882] Forked 23901 +(23901) found +[13881] Forked 23902 +(23902) found +[13880] Forked 23903 +(23903) found +[13879] Forked 23904 +(23904) found +[13878] Forked 23905 +(23905) found +[13877] Forked 23906 +(23906) found +[13876] Forked 23907 +(23907) found +[13875] Forked 23908 +(23908) found +[13874] Forked 23909 +(23909) found +[13873] Forked 23910 +(23910) found +[13872] Forked 23911 +(23911) found +[13871] Forked 23912 +(23912) found +[13870] Forked 23913 +(23913) found +[13869] Forked 23914 +(23914) found +[13868] Forked 23915 +(23915) found +[13867] Forked 23916 +(23916) found +[13866] Forked 23917 +(23917) found +[13865] Forked 23918 +[13864] Forked 23919 +(23918) found +(23919) found +[13863] Forked 23920 +[13862] Forked 23921 +(23920) found +(23921) found +[13861] Forked 23922 +[13860] Forked 23923 +(23922) found +(23923) found +[13859] Forked 23924 +(23924) found +[13858] Forked 23925 +[13857] Forked 23926 +(23926) found +(23925) found +[13856] Forked 23927 +(23927) found +[13855] Forked 23928 +(23928) found +[13854] Forked 23929 +(23929) found +[13853] Forked 23930 +(23930) found +[13852] Forked 23931 +(23931) found +[13851] Forked 23932 +(23932) found +[13850] Forked 23933 +(23933) found +[13849] Forked 23934 +(23934) found +[13848] Forked 23935 +(23935) found +[13847] Forked 23936 +(23936) found +[13846] Forked 23937 +(23937) found +[13845] Forked 23938 +(23938) found +[13844] Forked 23939 +(23939) found +[13843] Forked 23940 +(23940) found +[13842] Forked 23941 +(23941) found +[13841] Forked 23942 +(23942) found +[13840] Forked 23943 +[13839] Forked 23944 +(23943) found +(23944) found +[13838] Forked 23945 +[13837] Forked 23946 +(23946) found +(23945) found +[13836] Forked 23947 +(23947) found +[13835] Forked 23948 +(23948) found +[13834] Forked 23949 +(23949) found +[13833] Forked 23950 +(23950) found +[13832] Forked 23951 +(23951) found +[13831] Forked 23952 +(23952) found +[13830] Forked 23953 +(23953) found +[13829] Forked 23954 +(23954) found +[13828] Forked 23955 +(23955) found +[13827] Forked 23956 +(23956) found +[13826] Forked 23957 +(23957) found +[13825] Forked 23958 +(23958) found +[13824] Forked 23959 +(23959) found +[13823] Forked 23960 +(23960) found +[13822] Forked 23961 +(23961) found +[13821] Forked 23962 +(23962) found +[13820] Forked 23963 +(23963) found +[13819] Forked 23964 +(23964) found +[13818] Forked 23965 +(23965) found +[13817] Forked 23966 +(23966) found +[13816] Forked 23967 +(23967) found +[13815] Forked 23968 +(23968) found +[13814] Forked 23969 +(23969) found +[13813] Forked 23970 +(23970) found +[13812] Forked 23971 +(23971) found +[13811] Forked 23972 +(23972) found +[13810] Forked 23973 +(23973) found +[13809] Forked 23974 +(23974) found +[13808] Forked 23975 +(23975) found +[13807] Forked 23976 +(23976) found +[13806] Forked 23977 +(23977) found +[13805] Forked 23978 +(23978) found +[13804] Forked 23979 +(23979) found +[13803] Forked 23980 +(23980) found +[13802] Forked 23981 +(23981) found +[13801] Forked 23982 +(23982) found +[13800] Forked 23983 +(23983) found +[13799] Forked 23984 +(23984) found +[13798] Forked 23985 +[13797] Forked 23986 +(23985) found +(23986) found +[13796] Forked 23987 +[13795] Forked 23988 +(23987) found +(23988) found +[13794] Forked 23989 +[13793] Forked 23990 +(23989) found +(23990) found +[13792] Forked 23991 +[13791] Forked 23992 +(23991) found +(23992) found +[13790] Forked 23993 +[13789] Forked 23994 +(23993) found +(23994) found +[13788] Forked 23995 +[13787] Forked 23996 +(23995) found +(23996) found +[13786] Forked 23997 +[13785] Forked 23998 +(23997) found +(23998) found +[13784] Forked 23999 +[13783] Forked 24000 +(23999) found +(24000) found +[13782] Forked 24001 +[13781] Forked 24002 +(24001) found +(24002) found +[13780] Forked 24003 +[13779] Forked 24004 +(24004) found +(24003) found +[13778] Forked 24005 +(24005) found +[13777] Forked 24006 +(24006) found +[13776] Forked 24007 +(24007) found +[13775] Forked 24008 +(24008) found +[13774] Forked 24009 +(24009) found +[13773] Forked 24010 +(24010) found +[13772] Forked 24011 +(24011) found +[13771] Forked 24012 +(24012) found +[13770] Forked 24013 +(24013) found +[13769] Forked 24014 +(24014) found +[13768] Forked 24015 +(24015) found +[13767] Forked 24016 +(24016) found +[13766] Forked 24017 +(24017) found +[13765] Forked 24018 +(24018) found +[13764] Forked 24019 +[13763] Forked 24020 +(24019) found +(24020) found +[13762] Forked 24021 +[13761] Forked 24022 +(24021) found +(24022) found +[13760] Forked 24023 +[13759] Forked 24024 +(24023) found +(24024) found +[13758] Forked 24025 +[13757] Forked 24026 +(24025) found +(24026) found +[13756] Forked 24027 +[13755] Forked 24028 +(24027) found +(24028) found +[13754] Forked 24029 +[13753] Forked 24030 +(24029) found +(24030) found +[13752] Forked 24031 +[13751] Forked 24032 +(24031) found +(24032) found +[13750] Forked 24033 +[13749] Forked 24034 +(24033) found +(24034) found +[13748] Forked 24035 +[13747] Forked 24036 +(24035) found +(24036) found +[13746] Forked 24037 +[13745] Forked 24038 +(24037) found +(24038) found +[13744] Forked 24039 +[13743] Forked 24040 +(24039) found +(24040) found +[13742] Forked 24041 +[13741] Forked 24042 +(24041) found +(24042) found +[13740] Forked 24043 +[13739] Forked 24044 +(24043) found +(24044) found +[13738] Forked 24045 +(24045) found +[13737] Forked 24046 +[13736] Forked 24048 +(24046) found +(24048) found +[13735] Forked 24049 +(24049) found +[13734] Forked 24050 +(24050) found +[13733] Forked 24051 +(24051) found +[13732] Forked 24052 +(24052) found +[13731] Forked 24053 +(24053) found +[13730] Forked 24054 +(24054) found +[13729] Forked 24055 +(24055) found +[13728] Forked 24056 +(24056) found +[13727] Forked 24057 +(24057) found +[13726] Forked 24058 +(24058) found +[13725] Forked 24059 +(24059) found +[13724] Forked 24060 +(24060) found +[13723] Forked 24061 +(24061) found +[13722] Forked 24062 +(24062) found +[13721] Forked 24063 +(24063) found +[13720] Forked 24064 +(24064) found +[13719] Forked 24065 +(24065) found +[13718] Forked 24066 +(24066) found +[13717] Forked 24067 +(24067) found +[13716] Forked 24068 +(24068) found +[13715] Forked 24069 +(24069) found +[13714] Forked 24070 +(24070) found +[13713] Forked 24071 +(24071) found +[13712] Forked 24072 +(24072) found +[13711] Forked 24073 +(24073) found +[13710] Forked 24074 +(24074) found +[13709] Forked 24075 +(24075) found +[13708] Forked 24076 +(24076) found +[13707] Forked 24077 +(24077) found +[13706] Forked 24078 +(24078) found +[13705] Forked 24079 +(24079) found +[13704] Forked 24080 +(24080) found +[13703] Forked 24081 +(24081) found +[13702] Forked 24082 +(24082) found +[13701] Forked 24083 +(24083) found +[13700] Forked 24084 +(24084) found +[13699] Forked 24085 +(24085) found +[13698] Forked 24086 +(24086) found +[13697] Forked 24087 +(24087) found +[13696] Forked 24088 +(24088) found +[13695] Forked 24089 +(24089) found +[13694] Forked 24090 +(24090) found +[13693] Forked 24091 +(24091) found +[13692] Forked 24092 +(24092) found +[13691] Forked 24093 +(24093) found +[13690] Forked 24094 +(24094) found +[13689] Forked 24095 +(24095) found +[13688] Forked 24096 +(24096) found +[13687] Forked 24097 +(24097) found +[13686] Forked 24098 +(24098) found +[13685] Forked 24099 +(24099) found +[13684] Forked 24100 +(24100) found +[13683] Forked 24101 +(24101) found +[13682] Forked 24102 +(24102) found +[13681] Forked 24103 +(24103) found +[13680] Forked 24104 +(24104) found +[13679] Forked 24105 +(24105) found +[13678] Forked 24106 +(24106) found +[13677] Forked 24107 +(24107) found +[13676] Forked 24108 +(24108) found +[13675] Forked 24109 +(24109) found +[13674] Forked 24110 +(24110) found +[13673] Forked 24111 +(24111) found +[13672] Forked 24112 +(24112) found +[13671] Forked 24113 +(24113) found +[13670] Forked 24114 +(24114) found +[13669] Forked 24115 +(24115) found +[13668] Forked 24116 +(24116) found +[13667] Forked 24117 +(24117) found +[13666] Forked 24118 +(24118) found +[13665] Forked 24119 +(24119) found +[13664] Forked 24120 +(24120) found +[13663] Forked 24121 +(24121) found +[13662] Forked 24122 +(24122) found +[13661] Forked 24123 +(24123) found +[13660] Forked 24124 +(24124) found +[13659] Forked 24125 +(24125) found +[13658] Forked 24126 +[13657] Forked 24127 +(24126) found +(24127) found +[13656] Forked 24128 +[13655] Forked 24129 +(24128) found +(24129) found +[13654] Forked 24130 +[13653] Forked 24131 +(24130) found +(24131) found +[13652] Forked 24132 +[13651] Forked 24133 +(24132) found +(24133) found +[13650] Forked 24134 +[13649] Forked 24135 +(24135) found +(24134) found +[13648] Forked 24136 +(24136) found +[13647] Forked 24137 +(24137) found +[13646] Forked 24139 +(24139) found +[13645] Forked 24140 +(24140) found +[13644] Forked 24141 +(24141) found +[13643] Forked 24142 +(24142) found +[13642] Forked 24143 +(24143) found +[13641] Forked 24144 +(24144) found +[13640] Forked 24145 +(24145) found +[13639] Forked 24146 +(24146) found +[13638] Forked 24147 +(24147) found +[13637] Forked 24148 +(24148) found +[13636] Forked 24149 +(24149) found +[13635] Forked 24150 +(24150) found +[13634] Forked 24151 +(24151) found +[13633] Forked 24152 +(24152) found +[13632] Forked 24153 +(24153) found +[13631] Forked 24154 +[13630] Forked 24155 +(24154) found +(24155) found +[13629] Forked 24156 +[13628] Forked 24157 +(24156) found +(24157) found +[13627] Forked 24158 +[13626] Forked 24159 +(24158) found +(24159) found +[13625] Forked 24160 +[13624] Forked 24161 +(24160) found +(24161) found +[13623] Forked 24162 +[13622] Forked 24163 +(24162) found +(24163) found +[13621] Forked 24164 +(24164) found +[13620] Forked 24165 +(24165) found +[13619] Forked 24166 +(24166) found +[13618] Forked 24167 +(24167) found +[13617] Forked 24168 +(24168) found +[13616] Forked 24169 +(24169) found +[13615] Forked 24170 +(24170) found +[13614] Forked 24171 +(24171) found +[13613] Forked 24172 +(24172) found +[13612] Forked 24173 +(24173) found +[13611] Forked 24174 +(24174) found +[13610] Forked 24175 +(24175) found +[13609] Forked 24176 +(24176) found +[13608] Forked 24177 +(24177) found +[13607] Forked 24178 +(24178) found +[13606] Forked 24179 +(24179) found +[13605] Forked 24180 +(24180) found +[13604] Forked 24181 +(24181) found +[13603] Forked 24182 +(24182) found +[13602] Forked 24183 +(24183) found +[13601] Forked 24184 +(24184) found +[13600] Forked 24185 +(24185) found +[13599] Forked 24186 +(24186) found +[13598] Forked 24187 +(24187) found +[13597] Forked 24188 +(24188) found +[13596] Forked 24189 +(24189) found +[13595] Forked 24190 +(24190) found +[13594] Forked 24191 +(24191) found +[13593] Forked 24192 +(24192) found +[13592] Forked 24193 +(24193) found +[13591] Forked 24194 +(24194) found +[13590] Forked 24195 +(24195) found +[13589] Forked 24196 +(24196) found +[13588] Forked 24197 +(24197) found +[13587] Forked 24198 +(24198) found +[13586] Forked 24199 +(24199) found +[13585] Forked 24200 +[13584] Forked 24201 +(24200) found +(24201) found +[13583] Forked 24202 +[13582] Forked 24203 +(24202) found +(24203) found +[13581] Forked 24204 +[13580] Forked 24205 +(24204) found +(24205) found +[13579] Forked 24206 +[13578] Forked 24207 +(24206) found +(24207) found +[13577] Forked 24208 +[13576] Forked 24209 +(24208) found +(24209) found +[13575] Forked 24210 +[13574] Forked 24211 +(24210) found +(24211) found +[13573] Forked 24212 +[13572] Forked 24213 +(24212) found +(24213) found +[13571] Forked 24214 +[13570] Forked 24215 +(24214) found +(24215) found +[13569] Forked 24216 +[13568] Forked 24217 +(24216) found +(24217) found +[13567] Forked 24218 +[13566] Forked 24219 +(24218) found +(24219) found +[13565] Forked 24220 +[13564] Forked 24221 +(24220) found +(24221) found +[13563] Forked 24222 +[13562] Forked 24224 +(24222) found +(24224) found +[13561] Forked 24225 +(24225) found +[13560] Forked 24226 +(24226) found +[13559] Forked 24227 +(24227) found +[13558] Forked 24228 +(24228) found +[13557] Forked 24229 +(24229) found +[13556] Forked 24230 +(24230) found +[13555] Forked 24231 +(24231) found +[13554] Forked 24232 +(24232) found +[13553] Forked 24233 +(24233) found +[13552] Forked 24234 +(24234) found +[13551] Forked 24235 +(24235) found +[13550] Forked 24236 +(24236) found +[13549] Forked 24237 +(24237) found +[13548] Forked 24238 +(24238) found +[13547] Forked 24239 +(24239) found +[13546] Forked 24240 +(24240) found +[13545] Forked 24241 +(24241) found +[13544] Forked 24242 +(24242) found +[13543] Forked 24243 +(24243) found +[13542] Forked 24244 +(24244) found +[13541] Forked 24245 +(24245) found +[13540] Forked 24246 +(24246) found +[13539] Forked 24247 +(24247) found +[13538] Forked 24248 +(24248) found +[13537] Forked 24249 +(24249) found +[13536] Forked 24250 +(24250) found +[13535] Forked 24251 +(24251) found +[13534] Forked 24252 +(24252) found +[13533] Forked 24253 +(24253) found +[13532] Forked 24254 +(24254) found +[13531] Forked 24255 +(24255) found +[13530] Forked 24256 +(24256) found +[13529] Forked 24257 +(24257) found +[13528] Forked 24258 +(24258) found +[13527] Forked 24259 +(24259) found +[13526] Forked 24260 +(24260) found +[13525] Forked 24261 +(24261) found +[13524] Forked 24262 +(24262) found +[13523] Forked 24263 +(24263) found +[13522] Forked 24264 +(24264) found +[13521] Forked 24265 +(24265) found +[13520] Forked 24266 +(24266) found +[13519] Forked 24267 +(24267) found +[13518] Forked 24268 +(24268) found +[13517] Forked 24269 +(24269) found +[13516] Forked 24270 +(24270) found +[13515] Forked 24271 +(24271) found +[13514] Forked 24272 +(24272) found +[13513] Forked 24273 +(24273) found +[13512] Forked 24274 +(24274) found +[13511] Forked 24275 +(24275) found +[13510] Forked 24276 +[13509] Forked 24277 +(24276) found +(24277) found +[13508] Forked 24278 +[13507] Forked 24279 +(24278) found +(24279) found +[13506] Forked 24280 +[13505] Forked 24281 +(24280) found +(24281) found +[13504] Forked 24282 +[13503] Forked 24283 +(24282) found +(24283) found +[13502] Forked 24284 +[13501] Forked 24285 +(24284) found +(24285) found +[13500] Forked 24286 +[13499] Forked 24287 +(24286) found +(24287) found +[13498] Forked 24288 +[13497] Forked 24289 +(24288) found +(24289) found +[13496] Forked 24290 +[13495] Forked 24291 +(24290) found +(24291) found +[13494] Forked 24292 +[13493] Forked 24293 +(24292) found +(24293) found +[13492] Forked 24294 +[13491] Forked 24295 +(24294) found +(24295) found +[13490] Forked 24296 +[13489] Forked 24297 +(24296) found +(24297) found +[13488] Forked 24298 +[13487] Forked 24299 +(24298) found +(24299) found +[13486] Forked 24300 +[13485] Forked 24301 +(24300) found +(24301) found +[13484] Forked 24302 +[13483] Forked 24303 +(24302) found +(24303) found +[13482] Forked 24304 +[13481] Forked 24305 +(24304) found +(24305) found +[13480] Forked 24306 +[13479] Forked 24307 +(24306) found +(24307) found +[13478] Forked 24308 +[13477] Forked 24309 +(24308) found +(24309) found +[13476] Forked 24310 +[13475] Forked 24311 +(24310) found +(24311) found +[13474] Forked 24312 +[13473] Forked 24313 +(24312) found +(24313) found +[13472] Forked 24314 +[13471] Forked 24315 +(24314) found +(24315) found +[13470] Forked 24316 +[13469] Forked 24317 +(24316) found +(24317) found +[13468] Forked 24319 +[13467] Forked 24320 +(24319) found +(24320) found +[13466] Forked 24321 +(24321) found +[13465] Forked 24322 +(24322) found +[13464] Forked 24323 +(24323) found +[13463] Forked 24324 +(24324) found +[13462] Forked 24325 +(24325) found +[13461] Forked 24326 +(24326) found +[13460] Forked 24327 +(24327) found +[13459] Forked 24328 +(24328) found +[13458] Forked 24329 +(24329) found +[13457] Forked 24330 +(24330) found +[13456] Forked 24331 +(24331) found +[13455] Forked 24332 +(24332) found +[13454] Forked 24333 +(24333) found +[13453] Forked 24334 +(24334) found +[13452] Forked 24335 +(24335) found +[13451] Forked 24336 +(24336) found +[13450] Forked 24337 +(24337) found +[13449] Forked 24338 +(24338) found +[13448] Forked 24339 +(24339) found +[13447] Forked 24340 +(24340) found +[13446] Forked 24341 +(24341) found +[13445] Forked 24342 +(24342) found +[13444] Forked 24343 +(24343) found +[13443] Forked 24344 +(24344) found +[13442] Forked 24345 +(24345) found +[13441] Forked 24346 +(24346) found +[13440] Forked 24347 +(24347) found +[13439] Forked 24348 +(24348) found +[13438] Forked 24349 +(24349) found +[13437] Forked 24350 +(24350) found +[13436] Forked 24351 +(24351) found +[13435] Forked 24352 +(24352) found +[13434] Forked 24353 +(24353) found +[13433] Forked 24354 +(24354) found +[13432] Forked 24355 +(24355) found +[13431] Forked 24356 +(24356) found +[13430] Forked 24357 +[13429] Forked 24358 +(24357) found +(24358) found +[13428] Forked 24359 +[13427] Forked 24360 +(24359) found +(24360) found +[13426] Forked 24361 +[13425] Forked 24362 +(24361) found +(24362) found +[13424] Forked 24363 +[13423] Forked 24364 +(24363) found +(24364) found +[13422] Forked 24365 +[13421] Forked 24366 +(24365) found +(24366) found +[13420] Forked 24367 +[13419] Forked 24368 +(24367) found +(24368) found +[13418] Forked 24369 +[13417] Forked 24370 +(24369) found +(24370) found +[13416] Forked 24371 +[13415] Forked 24372 +(24371) found +(24372) found +[13414] Forked 24373 +[13413] Forked 24374 +(24373) found +(24374) found +[13412] Forked 24375 +[13411] Forked 24376 +(24375) found +(24376) found +[13410] Forked 24377 +[13409] Forked 24378 +(24377) found +(24378) found +[13408] Forked 24379 +(24379) found +[13407] Forked 24380 +[13406] Forked 24381 +(24380) found +(24381) found +[13405] Forked 24382 +[13404] Forked 24383 +(24382) found +(24383) found +[13403] Forked 24384 +[13402] Forked 24385 +(24384) found +(24385) found +[13401] Forked 24386 +[13400] Forked 24387 +(24386) found +(24387) found +[13399] Forked 24388 +[13398] Forked 24389 +(24388) found +(24389) found +[13397] Forked 24390 +[13396] Forked 24391 +(24390) found +(24391) found +[13395] Forked 24392 +[13394] Forked 24393 +(24392) found +(24393) found +[13393] Forked 24394 +[13392] Forked 24395 +(24394) found +(24395) found +[13391] Forked 24396 +[13390] Forked 24397 +(24396) found +(24397) found +[13389] Forked 24398 +[13388] Forked 24399 +(24398) found +(24399) found +[13387] Forked 24400 +[13386] Forked 24401 +(24400) found +(24401) found +[13385] Forked 24402 +(24402) found +[13384] Forked 24403 +(24403) found +[13383] Forked 24404 +(24404) found +[13382] Forked 24405 +(24405) found +[13381] Forked 24406 +(24406) found +[13380] Forked 24407 +(24407) found +[13379] Forked 24408 +(24408) found +[13378] Forked 24409 +(24409) found +[13377] Forked 24410 +(24410) found +[13376] Forked 24411 +(24411) found +[13375] Forked 24412 +(24412) found +[13374] Forked 24413 +(24413) found +[13373] Forked 24414 +(24414) found +[13372] Forked 24415 +(24415) found +[13371] Forked 24416 +(24416) found +[13370] Forked 24417 +(24417) found +[13369] Forked 24418 +(24418) found +[13368] Forked 24419 +(24419) found +[13367] Forked 24420 +(24420) found +[13366] Forked 24421 +(24421) found +[13365] Forked 24422 +(24422) found +[13364] Forked 24423 +(24423) found +[13363] Forked 24424 +(24424) found +[13362] Forked 24425 +(24425) found +[13361] Forked 24426 +(24426) found +[13360] Forked 24427 +(24427) found +[13359] Forked 24428 +(24428) found +[13358] Forked 24429 +(24429) found +[13357] Forked 24430 +(24430) found +[13356] Forked 24431 +(24431) found +[13355] Forked 24432 +(24432) found +[13354] Forked 24433 +(24433) found +[13353] Forked 24434 +(24434) found +[13352] Forked 24435 +(24435) found +[13351] Forked 24436 +(24436) found +[13350] Forked 24437 +(24437) found +[13349] Forked 24438 +(24438) found +[13348] Forked 24439 +(24439) found +[13347] Forked 24440 +(24440) found +[13346] Forked 24441 +(24441) found +[13345] Forked 24442 +[13344] Forked 24443 +(24442) found +(24443) found +[13343] Forked 24444 +[13342] Forked 24445 +(24444) found +(24445) found +[13341] Forked 24446 +[13340] Forked 24447 +(24446) found +(24447) found +[13339] Forked 24448 +[13338] Forked 24449 +(24448) found +(24449) found +[13337] Forked 24450 +[13336] Forked 24451 +(24450) found +(24451) found +[13335] Forked 24452 +[13334] Forked 24453 +(24452) found +(24453) found +[13333] Forked 24454 +[13332] Forked 24455 +(24454) found +(24455) found +[13331] Forked 24456 +[13330] Forked 24457 +(24456) found +(24457) found +[13329] Forked 24458 +[13328] Forked 24459 +(24458) found +(24459) found +[13327] Forked 24460 +[13326] Forked 24461 +(24460) found +(24461) found +[13325] Forked 24462 +[13324] Forked 24463 +(24462) found +(24463) found +[13323] Forked 24464 +[13322] Forked 24465 +(24464) found +(24465) found +[13321] Forked 24466 +[13320] Forked 24467 +(24466) found +(24467) found +[13319] Forked 24468 +[13318] Forked 24469 +(24468) found +(24469) found +[13317] Forked 24470 +[13316] Forked 24473 +(24470) found +(24473) found +[13315] Forked 24474 +[13314] Forked 24475 +(24474) found +(24475) found +[13313] Forked 24476 +[13312] Forked 24477 +(24476) found +(24477) found +[13311] Forked 24478 +[13310] Forked 24479 +(24478) found +(24479) found +[13309] Forked 24480 +[13308] Forked 24481 +(24480) found +(24481) found +[13307] Forked 24482 +[13306] Forked 24483 +(24482) found +(24483) found +[13305] Forked 24484 +[13304] Forked 24485 +(24484) found +(24485) found +[13303] Forked 24486 +(24486) found +[13302] Forked 24487 +(24487) found +[13301] Forked 24488 +(24488) found +[13300] Forked 24489 +(24489) found +[13299] Forked 24490 +(24490) found +[13298] Forked 24491 +(24491) found +[13297] Forked 24492 +(24492) found +[13296] Forked 24493 +(24493) found +[13295] Forked 24494 +(24494) found +[13294] Forked 24495 +(24495) found +[13293] Forked 24496 +(24496) found +[13292] Forked 24497 +(24497) found +[13291] Forked 24498 +(24498) found +[13290] Forked 24499 +(24499) found +[13289] Forked 24500 +(24500) found +[13288] Forked 24501 +(24501) found +[13287] Forked 24502 +(24502) found +[13286] Forked 24503 +(24503) found +[13285] Forked 24504 +(24504) found +[13284] Forked 24505 +(24505) found +[13283] Forked 24506 +(24506) found +[13282] Forked 24507 +(24507) found +[13281] Forked 24508 +(24508) found +[13280] Forked 24509 +(24509) found +[13279] Forked 24510 +(24510) found +[13278] Forked 24511 +(24511) found +[13277] Forked 24512 +(24512) found +[13276] Forked 24513 +(24513) found +[13275] Forked 24514 +(24514) found +[13274] Forked 24515 +(24515) found +[13273] Forked 24516 +(24516) found +[13272] Forked 24517 +(24517) found +[13271] Forked 24518 +(24518) found +[13270] Forked 24519 +(24519) found +[13269] Forked 24520 +(24520) found +[13268] Forked 24521 +(24521) found +[13267] Forked 24522 +(24522) found +[13266] Forked 24523 +(24523) found +[13265] Forked 24524 +(24524) found +[13264] Forked 24525 +[13263] Forked 24526 +(24525) found +(24526) found +[13262] Forked 24527 +[13261] Forked 24528 +(24527) found +(24528) found +[13260] Forked 24529 +[13259] Forked 24530 +(24529) found +(24530) found +[13258] Forked 24531 +[13257] Forked 24532 +(24531) found +(24532) found +[13256] Forked 24533 +[13255] Forked 24534 +(24533) found +(24534) found +[13254] Forked 24535 +[13253] Forked 24536 +(24535) found +(24536) found +[13252] Forked 24537 +[13251] Forked 24538 +(24537) found +(24538) found +[13250] Forked 24539 +[13249] Forked 24540 +(24539) found +(24540) found +[13248] Forked 24541 +[13247] Forked 24542 +(24541) found +(24542) found +[13246] Forked 24543 +[13245] Forked 24544 +(24543) found +(24544) found +[13244] Forked 24545 +[13243] Forked 24546 +(24545) found +(24546) found +[13242] Forked 24547 +[13241] Forked 24548 +(24547) found +(24548) found +[13240] Forked 24549 +[13239] Forked 24550 +(24549) found +(24550) found +[13238] Forked 24551 +[13237] Forked 24552 +(24551) found +(24552) found +[13236] Forked 24553 +[13235] Forked 24554 +(24553) found +(24554) found +[13234] Forked 24555 +[13233] Forked 24556 +(24555) found +(24556) found +[13232] Forked 24557 +[13231] Forked 24558 +(24558) found +(24557) found +[13230] Forked 24559 +(24559) found +[13229] Forked 24560 +(24560) found +[13228] Forked 24561 +(24561) found +[13227] Forked 24562 +(24562) found +[13226] Forked 24563 +[13225] Forked 24564 +(24563) found +(24564) found +[13224] Forked 24565 +[13223] Forked 24566 +(24565) found +(24566) found +[13222] Forked 24567 +(24567) found +[13221] Forked 24568 +(24568) found +[13220] Forked 24569 +(24569) found +[13219] Forked 24570 +(24570) found +[13218] Forked 24571 +(24571) found +[13217] Forked 24572 +(24572) found +[13216] Forked 24573 +(24573) found +[13215] Forked 24574 +(24574) found +[13214] Forked 24575 +(24575) found +[13213] Forked 24576 +(24576) found +[13212] Forked 24577 +(24577) found +[13211] Forked 24578 +(24578) found +[13210] Forked 24579 +(24579) found +[13209] Forked 24580 +(24580) found +[13208] Forked 24581 +(24581) found +[13207] Forked 24582 +(24582) found +[13206] Forked 24583 +(24583) found +[13205] Forked 24584 +(24584) found +[13204] Forked 24585 +(24585) found +[13203] Forked 24586 +(24586) found +[13202] Forked 24587 +(24587) found +[13201] Forked 24588 +(24588) found +[13200] Forked 24589 +(24589) found +[13199] Forked 24590 +(24590) found +[13198] Forked 24591 +(24591) found +[13197] Forked 24592 +(24592) found +[13196] Forked 24593 +(24593) found +[13195] Forked 24594 +(24594) found +[13194] Forked 24595 +(24595) found +[13193] Forked 24596 +(24596) found +[13192] Forked 24597 +(24597) found +[13191] Forked 24598 +(24598) found +[13190] Forked 24599 +(24599) found +[13189] Forked 24600 +(24600) found +[13188] Forked 24601 +(24601) found +[13187] Forked 24602 +(24602) found +[13186] Forked 24603 +(24603) found +[13185] Forked 24604 +(24604) found +[13184] Forked 24605 +(24605) found +[13183] Forked 24606 +[13182] Forked 24607 +(24606) found +(24607) found +[13181] Forked 24608 +[13180] Forked 24609 +(24608) found +(24609) found +[13179] Forked 24610 +[13178] Forked 24611 +(24610) found +(24611) found +[13177] Forked 24612 +[13176] Forked 24613 +(24612) found +(24613) found +[13175] Forked 24614 +[13174] Forked 24615 +(24614) found +(24615) found +[13173] Forked 24616 +[13172] Forked 24617 +(24616) found +(24617) found +[13171] Forked 24618 +[13170] Forked 24619 +(24618) found +(24619) found +[13169] Forked 24620 +[13168] Forked 24621 +(24620) found +(24621) found +[13167] Forked 24622 +[13166] Forked 24623 +(24622) found +(24623) found +[13165] Forked 24624 +[13164] Forked 24625 +(24624) found +(24625) found +[13163] Forked 24626 +[13162] Forked 24627 +(24626) found +(24627) found +[13161] Forked 24628 +[13160] Forked 24629 +(24628) found +(24629) found +[13159] Forked 24630 +[13158] Forked 24631 +(24630) found +(24631) found +[13157] Forked 24632 +[13156] Forked 24633 +(24632) found +(24633) found +[13155] Forked 24634 +[13154] Forked 24635 +(24634) found +(24635) found +[13153] Forked 24636 +[13152] Forked 24637 +(24636) found +(24637) found +[13151] Forked 24638 +[13150] Forked 24639 +(24638) found +(24639) found +[13149] Forked 24640 +[13148] Forked 24641 +(24640) found +(24641) found +[13147] Forked 24642 +[13146] Forked 24643 +(24642) found +(24643) found +[13145] Forked 24644 +[13144] Forked 24645 +(24644) found +(24645) found +[13143] Forked 24646 +[13142] Forked 24647 +(24646) found +(24647) found +[13141] Forked 24648 +[13140] Forked 24649 +(24648) found +(24649) found +[13139] Forked 24650 +(24650) found +[13138] Forked 24651 +(24651) found +[13137] Forked 24652 +(24652) found +[13136] Forked 24653 +(24653) found +[13135] Forked 24654 +(24654) found +[13134] Forked 24655 +(24655) found +[13133] Forked 24656 +(24656) found +[13132] Forked 24657 +(24657) found +[13131] Forked 24658 +(24658) found +[13130] Forked 24659 +(24659) found +[13129] Forked 24660 +(24660) found +[13128] Forked 24661 +(24661) found +[13127] Forked 24662 +(24662) found +[13126] Forked 24663 +(24663) found +[13125] Forked 24664 +(24664) found +[13124] Forked 24665 +(24665) found +[13123] Forked 24666 +(24666) found +[13122] Forked 24667 +(24667) found +[13121] Forked 24668 +(24668) found +[13120] Forked 24669 +(24669) found +[13119] Forked 24670 +(24670) found +[13118] Forked 24671 +(24671) found +[13117] Forked 24672 +(24672) found +[13116] Forked 24673 +(24673) found +[13115] Forked 24674 +(24674) found +[13114] Forked 24675 +(24675) found +[13113] Forked 24676 +(24676) found +[13112] Forked 24677 +(24677) found +[13111] Forked 24678 +(24678) found +[13110] Forked 24679 +(24679) found +[13109] Forked 24680 +(24680) found +[13108] Forked 24681 +(24681) found +[13107] Forked 24682 +(24682) found +[13106] Forked 24683 +(24683) found +[13105] Forked 24684 +(24684) found +[13104] Forked 24685 +(24685) found +[13103] Forked 24686 +(24686) found +[13102] Forked 24687 +(24687) found +[13101] Forked 24688 +[13100] Forked 24689 +(24688) found +(24689) found +[13099] Forked 24690 +[13098] Forked 24691 +(24690) found +(24691) found +[13097] Forked 24692 +[13096] Forked 24693 +(24692) found +(24693) found +[13095] Forked 24694 +[13094] Forked 24695 +(24694) found +(24695) found +[13093] Forked 24696 +[13092] Forked 24697 +(24696) found +(24697) found +[13091] Forked 24698 +[13090] Forked 24699 +(24698) found +(24699) found +[13089] Forked 24700 +[13088] Forked 24701 +(24700) found +(24701) found +[13087] Forked 24702 +[13086] Forked 24703 +(24702) found +(24703) found +[13085] Forked 24704 +[13084] Forked 24705 +(24704) found +(24705) found +[13083] Forked 24706 +[13082] Forked 24707 +(24706) found +(24707) found +[13081] Forked 24708 +[13080] Forked 24709 +(24708) found +(24709) found +[13079] Forked 24710 +[13078] Forked 24711 +(24710) found +(24711) found +[13077] Forked 24712 +[13076] Forked 24713 +(24712) found +(24713) found +[13075] Forked 24714 +[13074] Forked 24715 +(24714) found +(24715) found +[13073] Forked 24716 +[13072] Forked 24717 +(24716) found +(24717) found +[13071] Forked 24718 +[13070] Forked 24719 +(24718) found +(24719) found +[13069] Forked 24720 +[13068] Forked 24721 +(24721) found +(24720) found +[13067] Forked 24722 +(24722) found +[13066] Forked 24723 +(24723) found +[13065] Forked 24724 +(24724) found +[13064] Forked 24725 +(24725) found +[13063] Forked 24726 +[13062] Forked 24727 +(24726) found +(24727) found +[13061] Forked 24728 +[13060] Forked 24729 +(24728) found +(24729) found +[13059] Forked 24730 +[13058] Forked 24731 +(24730) found +(24731) found +[13057] Forked 24732 +[13056] Forked 24733 +(24732) found +(24733) found +[13055] Forked 24734 +[13054] Forked 24735 +(24734) found +(24735) found +[13053] Forked 24736 +[13052] Forked 24737 +(24736) found +(24737) found +[13051] Forked 24738 +[13050] Forked 24739 +(24738) found +(24739) found +[13049] Forked 24740 +[13048] Forked 24741 +(24740) found +(24741) found +[13047] Forked 24742 +[13046] Forked 24743 +(24742) found +(24743) found +[13045] Forked 24744 +[13044] Forked 24745 +(24744) found +(24745) found +[13043] Forked 24746 +[13042] Forked 24747 +(24746) found +(24747) found +[13041] Forked 24748 +[13040] Forked 24749 +(24748) found +(24749) found +[13039] Forked 24750 +[13038] Forked 24751 +(24750) found +(24751) found +[13037] Forked 24752 +[13036] Forked 24753 +(24752) found +(24753) found +[13035] Forked 24754 +[13034] Forked 24755 +(24754) found +(24755) found +[13033] Forked 24756 +[13032] Forked 24757 +(24756) found +(24757) found +[13031] Forked 24758 +[13030] Forked 24759 +(24758) found +(24759) found +[13029] Forked 24760 +[13028] Forked 24761 +(24760) found +(24761) found +[13027] Forked 24762 +[13026] Forked 24763 +(24762) found +(24763) found +[13025] Forked 24764 +[13024] Forked 24765 +(24764) found +(24765) found +[13023] Forked 24766 +[13022] Forked 24767 +(24766) found +(24767) found +[13021] Forked 24768 +[13020] Forked 24769 +(24768) found +(24769) found +[13019] Forked 24770 +[13018] Forked 24771 +(24770) found +(24771) found +[13017] Forked 24772 +[13016] Forked 24773 +(24772) found +(24773) found +[13015] Forked 24774 +(24774) found +[13014] Forked 24775 +(24775) found +[13013] Forked 24776 +(24776) found +[13012] Forked 24777 +(24777) found +[13011] Forked 24778 +(24778) found +[13010] Forked 24779 +(24779) found +[13009] Forked 24780 +(24780) found +[13008] Forked 24781 +(24781) found +[13007] Forked 24782 +(24782) found +[13006] Forked 24783 +(24783) found +[13005] Forked 24784 +(24784) found +[13004] Forked 24785 +(24785) found +[13003] Forked 24786 +(24786) found +[13002] Forked 24787 +(24787) found +[13001] Forked 24788 +(24788) found +[13000] Forked 24789 +(24789) found +[12999] Forked 24790 +(24790) found +[12998] Forked 24791 +(24791) found +[12997] Forked 24792 +(24792) found +[12996] Forked 24793 +(24793) found +[12995] Forked 24794 +(24794) found +[12994] Forked 24795 +(24795) found +[12993] Forked 24796 +(24796) found +[12992] Forked 24797 +(24797) found +[12991] Forked 24798 +(24798) found +[12990] Forked 24799 +(24799) found +[12989] Forked 24800 +(24800) found +[12988] Forked 24801 +(24801) found +[12987] Forked 24802 +(24802) found +[12986] Forked 24803 +(24803) found +[12985] Forked 24804 +(24804) found +[12984] Forked 24805 +(24805) found +[12983] Forked 24806 +(24806) found +[12982] Forked 24807 +(24807) found +[12981] Forked 24808 +(24808) found +[12980] Forked 24809 +[12979] Forked 24810 +(24809) found +(24810) found +[12978] Forked 24811 +[12977] Forked 24812 +(24811) found +(24812) found +[12976] Forked 24813 +[12975] Forked 24814 +(24813) found +(24814) found +[12974] Forked 24815 +[12973] Forked 24816 +(24815) found +(24816) found +[12972] Forked 24817 +[12971] Forked 24818 +(24817) found +(24818) found +[12970] Forked 24819 +[12969] Forked 24820 +(24819) found +(24820) found +[12968] Forked 24821 +[12967] Forked 24822 +(24821) found +(24822) found +[12966] Forked 24823 +[12965] Forked 24824 +(24823) found +(24824) found +[12964] Forked 24825 +[12963] Forked 24826 +(24825) found +(24826) found +[12962] Forked 24827 +[12961] Forked 24828 +(24827) found +(24828) found +[12960] Forked 24829 +[12959] Forked 24830 +(24829) found +(24830) found +[12958] Forked 24831 +[12957] Forked 24832 +(24831) found +(24832) found +[12956] Forked 24833 +[12955] Forked 24834 +(24833) found +(24834) found +[12954] Forked 24835 +[12953] Forked 24836 +(24835) found +(24836) found +[12952] Forked 24837 +[12951] Forked 24838 +(24837) found +(24838) found +[12950] Forked 24839 +[12949] Forked 24840 +(24839) found +(24840) found +[12948] Forked 24841 +[12947] Forked 24842 +(24841) found +(24842) found +[12946] Forked 24843 +[12945] Forked 24844 +(24843) found +(24844) found +[12944] Forked 24845 +[12943] Forked 24846 +(24845) found +(24846) found +[12942] Forked 24847 +[12941] Forked 24848 +(24847) found +(24848) found +[12940] Forked 24849 +[12939] Forked 24850 +(24849) found +(24850) found +[12938] Forked 24851 +[12937] Forked 24852 +(24851) found +(24852) found +[12936] Forked 24853 +[12935] Forked 24854 +(24853) found +(24854) found +[12934] Forked 24855 +(24855) found +[12933] Forked 24856 +(24856) found +[12932] Forked 24857 +(24857) found +[12931] Forked 24858 +(24858) found +[12930] Forked 24859 +(24859) found +[12929] Forked 24860 +(24860) found +[12928] Forked 24861 +(24861) found +[12927] Forked 24862 +(24862) found +[12926] Forked 24863 +(24863) found +[12925] Forked 24864 +(24864) found +[12924] Forked 24865 +(24865) found +[12923] Forked 24866 +(24866) found +[12922] Forked 24867 +(24867) found +[12921] Forked 24868 +(24868) found +[12920] Forked 24869 +(24869) found +[12919] Forked 24870 +(24870) found +[12918] Forked 24871 +(24871) found +[12917] Forked 24872 +(24872) found +[12916] Forked 24873 +(24873) found +[12915] Forked 24874 +(24874) found +[12914] Forked 24875 +(24875) found +[12913] Forked 24876 +(24876) found +[12912] Forked 24877 +(24877) found +[12911] Forked 24878 +(24878) found +[12910] Forked 24879 +(24879) found +[12909] Forked 24880 +(24880) found +[12908] Forked 24881 +(24881) found +[12907] Forked 24882 +(24882) found +[12906] Forked 24883 +(24883) found +[12905] Forked 24884 +(24884) found +[12904] Forked 24885 +(24885) found +[12903] Forked 24886 +(24886) found +[12902] Forked 24887 +(24887) found +[12901] Forked 24888 +(24888) found +[12900] Forked 24889 +(24889) found +[12899] Forked 24890 +[12898] Forked 24891 +(24890) found +(24891) found +[12897] Forked 24892 +[12896] Forked 24893 +(24892) found +(24893) found +[12895] Forked 24894 +[12894] Forked 24895 +(24894) found +(24895) found +[12893] Forked 24896 +[12892] Forked 24897 +(24896) found +(24897) found +[12891] Forked 24898 +[12890] Forked 24899 +(24898) found +(24899) found +[12889] Forked 24900 +[12888] Forked 24901 +(24900) found +(24901) found +[12887] Forked 24902 +[12886] Forked 24903 +(24902) found +(24903) found +[12885] Forked 24904 +[12884] Forked 24905 +(24904) found +(24905) found +[12883] Forked 24906 +[12882] Forked 24907 +(24906) found +(24907) found +[12881] Forked 24908 +[12880] Forked 24909 +(24908) found +(24909) found +[12879] Forked 24910 +[12878] Forked 24911 +(24910) found +(24911) found +[12877] Forked 24912 +[12876] Forked 24913 +(24912) found +(24913) found +[12875] Forked 24914 +[12874] Forked 24915 +(24914) found +(24915) found +[12873] Forked 24916 +[12872] Forked 24917 +(24916) found +(24917) found +[12871] Forked 24918 +[12870] Forked 24919 +(24918) found +(24919) found +[12869] Forked 24920 +[12868] Forked 24921 +(24920) found +(24921) found +[12867] Forked 24922 +[12866] Forked 24923 +(24922) found +(24923) found +[12865] Forked 24924 +[12864] Forked 24925 +(24924) found +(24925) found +[12863] Forked 24926 +[12862] Forked 24927 +(24926) found +(24927) found +[12861] Forked 24928 +[12860] Forked 24929 +(24928) found +(24929) found +[12859] Forked 24930 +[12858] Forked 24931 +(24930) found +(24931) found +[12857] Forked 24932 +[12856] Forked 24933 +(24932) found +(24933) found +[12855] Forked 24934 +[12854] Forked 24935 +(24934) found +(24935) found +[12853] Forked 24936 +[12852] Forked 24937 +(24936) found +(24937) found +[12851] Forked 24938 +[12850] Forked 24939 +(24938) found +(24939) found +[12849] Forked 24940 +[12848] Forked 24941 +(24940) found +(24941) found +[12847] Forked 24942 +[12846] Forked 24943 +(24942) found +(24943) found +[12845] Forked 24944 +[12844] Forked 24945 +(24944) found +(24945) found +[12843] Forked 24946 +[12842] Forked 24947 +(24946) found +(24947) found +[12841] Forked 24948 +(24948) found +[12840] Forked 24949 +(24949) found +[12839] Forked 24950 +[12838] Forked 24951 +(24950) found +(24951) found +[12837] Forked 24952 +[12836] Forked 24953 +(24952) found +(24953) found +[12835] Forked 24954 +[12834] Forked 24955 +(24954) found +(24955) found +[12833] Forked 24956 +[12832] Forked 24957 +(24956) found +(24957) found +[12831] Forked 24958 +[12830] Forked 24959 +(24958) found +(24959) found +[12829] Forked 24960 +[12828] Forked 24961 +(24960) found +(24961) found +[12827] Forked 24962 +[12826] Forked 24963 +(24962) found +(24963) found +[12825] Forked 24964 +[12824] Forked 24965 +(24964) found +(24965) found +[12823] Forked 24966 +[12822] Forked 24967 +(24966) found +(24967) found +[12821] Forked 24968 +[12820] Forked 24969 +(24968) found +(24969) found +[12819] Forked 24970 +[12818] Forked 24971 +(24970) found +(24971) found +[12817] Forked 24972 +[12816] Forked 24973 +(24972) found +(24973) found +[12815] Forked 24974 +[12814] Forked 24975 +(24974) found +(24975) found +[12813] Forked 24976 +[12812] Forked 24977 +(24976) found +(24977) found +[12811] Forked 24978 +[12810] Forked 24979 +(24978) found +(24979) found +[12809] Forked 24980 +[12808] Forked 24981 +(24980) found +(24981) found +[12807] Forked 24982 +[12806] Forked 24983 +(24982) found +(24983) found +[12805] Forked 24984 +[12804] Forked 24985 +(24984) found +(24985) found +[12803] Forked 24986 +[12802] Forked 24987 +(24986) found +(24987) found +[12801] Forked 24988 +[12800] Forked 24989 +(24988) found +(24989) found +[12799] Forked 24990 +[12798] Forked 24991 +(24990) found +(24991) found +[12797] Forked 24992 +[12796] Forked 24993 +(24992) found +(24993) found +[12795] Forked 24994 +[12794] Forked 24996 +(24994) found +(24996) found +[12793] Forked 24997 +[12792] Forked 24998 +(24997) found +(24998) found +[12791] Forked 24999 +[12790] Forked 25000 +(24999) found +(25000) found +[12789] Forked 25001 +[12788] Forked 25002 +(25001) found +(25002) found +[12787] Forked 25003 +[12786] Forked 25004 +(25003) found +(25004) found +[12785] Forked 25005 +[12784] Forked 25006 +(25005) found +(25006) found +[12783] Forked 25007 +[12782] Forked 25008 +(25007) found +(25008) found +[12781] Forked 25009 +[12780] Forked 25010 +(25009) found +(25010) found +[12779] Forked 25011 +[12778] Forked 25012 +(25011) found +(25012) found +[12777] Forked 25013 +[12776] Forked 25014 +(25013) found +(25014) found +[12775] Forked 25015 +[12774] Forked 25016 +(25015) found +(25016) found +[12773] Forked 25017 +[12772] Forked 25018 +(25017) found +(25018) found +[12771] Forked 25019 +[12770] Forked 25020 +(25019) found +(25020) found +[12769] Forked 25021 +[12768] Forked 25023 +(25021) found +(25023) found +[12767] Forked 25024 +(25024) found +[12766] Forked 25025 +(25025) found +[12765] Forked 25026 +(25026) found +[12764] Forked 25027 +(25027) found +[12763] Forked 25028 +(25028) found +[12762] Forked 25029 +(25029) found +[12761] Forked 25030 +(25030) found +[12760] Forked 25031 +(25031) found +[12759] Forked 25032 +(25032) found +[12758] Forked 25033 +(25033) found +[12757] Forked 25034 +(25034) found +[12756] Forked 25035 +(25035) found +[12755] Forked 25036 +(25036) found +[12754] Forked 25037 +(25037) found +[12753] Forked 25038 +(25038) found +[12752] Forked 25039 +(25039) found +[12751] Forked 25040 +(25040) found +[12750] Forked 25041 +(25041) found +[12749] Forked 25042 +(25042) found +[12748] Forked 25043 +(25043) found +[12747] Forked 25044 +(25044) found +[12746] Forked 25045 +(25045) found +[12745] Forked 25046 +(25046) found +[12744] Forked 25047 +(25047) found +[12743] Forked 25048 +(25048) found +[12742] Forked 25049 +(25049) found +[12741] Forked 25050 +(25050) found +[12740] Forked 25051 +(25051) found +[12739] Forked 25052 +(25052) found +[12738] Forked 25053 +(25053) found +[12737] Forked 25054 +(25054) found +[12736] Forked 25055 +(25055) found +[12735] Forked 25056 +(25056) found +[12734] Forked 25057 +(25057) found +[12733] Forked 25058 +(25058) found +[12732] Forked 25059 +(25059) found +[12731] Forked 25060 +(25060) found +[12730] Forked 25061 +(25061) found +[12729] Forked 25062 +[12728] Forked 25063 +(25063) found +(25062) found +[12727] Forked 25064 +(25064) found +[12726] Forked 25065 +(25065) found +[12725] Forked 25066 +(25066) found +[12724] Forked 25067 +(25067) found +[12723] Forked 25068 +(25068) found +[12722] Forked 25069 +(25069) found +[12721] Forked 25070 +(25070) found +[12720] Forked 25071 +(25071) found +[12719] Forked 25072 +(25072) found +[12718] Forked 25073 +(25073) found +[12717] Forked 25074 +(25074) found +[12716] Forked 25075 +(25075) found +[12715] Forked 25076 +(25076) found +[12714] Forked 25077 +(25077) found +[12713] Forked 25078 +(25078) found +[12712] Forked 25079 +(25079) found +[12711] Forked 25080 +(25080) found +[12710] Forked 25081 +(25081) found +[12709] Forked 25082 +(25082) found +[12708] Forked 25083 +(25083) found +[12707] Forked 25084 +(25084) found +[12706] Forked 25085 +(25085) found +[12705] Forked 25086 +(25086) found +[12704] Forked 25087 +(25087) found +[12703] Forked 25088 +(25088) found +[12702] Forked 25089 +(25089) found +[12701] Forked 25090 +(25090) found +[12700] Forked 25091 +(25091) found +[12699] Forked 25092 +(25092) found +[12698] Forked 25093 +(25093) found +[12697] Forked 25094 +(25094) found +[12696] Forked 25095 +(25095) found +[12695] Forked 25096 +(25096) found +[12694] Forked 25097 +(25097) found +[12693] Forked 25098 +(25098) found +[12692] Forked 25099 +(25099) found +[12691] Forked 25100 +(25100) found +[12690] Forked 25101 +(25101) found +[12689] Forked 25102 +(25102) found +[12688] Forked 25103 +(25103) found +[12687] Forked 25104 +(25104) found +[12686] Forked 25105 +(25105) found +[12685] Forked 25106 +(25106) found +[12684] Forked 25107 +(25107) found +[12683] Forked 25108 +(25108) found +[12682] Forked 25109 +(25109) found +[12681] Forked 25110 +(25110) found +[12680] Forked 25111 +(25111) found +[12679] Forked 25112 +(25112) found +[12678] Forked 25113 +(25113) found +[12677] Forked 25114 +(25114) found +[12676] Forked 25115 +(25115) found +[12675] Forked 25116 +(25116) found +[12674] Forked 25117 +(25117) found +[12673] Forked 25118 +(25118) found +[12672] Forked 25119 +(25119) found +[12671] Forked 25120 +(25120) found +[12670] Forked 25121 +(25121) found +[12669] Forked 25122 +(25122) found +[12668] Forked 25123 +(25123) found +[12667] Forked 25124 +(25124) found +[12666] Forked 25125 +(25125) found +[12665] Forked 25126 +(25126) found +[12664] Forked 25127 +(25127) found +[12663] Forked 25128 +(25128) found +[12662] Forked 25129 +(25129) found +[12661] Forked 25130 +(25130) found +[12660] Forked 25131 +(25131) found +[12659] Forked 25132 +[12658] Forked 25133 +(25132) found +(25133) found +[12657] Forked 25134 +[12656] Forked 25135 +(25134) found +(25135) found +[12655] Forked 25136 +[12654] Forked 25137 +(25136) found +(25137) found +[12653] Forked 25138 +[12652] Forked 25139 +(25138) found +(25139) found +[12651] Forked 25140 +[12650] Forked 25141 +(25140) found +(25141) found +[12649] Forked 25142 +[12648] Forked 25143 +(25142) found +(25143) found +[12647] Forked 25144 +[12646] Forked 25145 +(25144) found +(25145) found +[12645] Forked 25146 +[12644] Forked 25147 +(25146) found +(25147) found +[12643] Forked 25148 +[12642] Forked 25149 +(25148) found +(25149) found +[12641] Forked 25150 +[12640] Forked 25151 +(25150) found +(25151) found +[12639] Forked 25152 +[12638] Forked 25153 +(25152) found +(25153) found +[12637] Forked 25154 +[12636] Forked 25155 +(25154) found +(25155) found +[12635] Forked 25156 +[12634] Forked 25157 +(25156) found +(25157) found +[12633] Forked 25158 +[12632] Forked 25159 +(25158) found +(25159) found +[12631] Forked 25160 +[12630] Forked 25161 +(25160) found +(25161) found +[12629] Forked 25162 +[12628] Forked 25163 +(25162) found +(25163) found +[12627] Forked 25164 +[12626] Forked 25165 +(25164) found +(25165) found +[12625] Forked 25166 +[12624] Forked 25167 +(25166) found +(25167) found +[12623] Forked 25168 +[12622] Forked 25169 +(25168) found +(25169) found +[12621] Forked 25170 +[12620] Forked 25171 +(25170) found +(25171) found +[12619] Forked 25172 +[12618] Forked 25173 +(25172) found +(25173) found +[12617] Forked 25174 +[12616] Forked 25175 +(25174) found +(25175) found +[12615] Forked 25176 +[12614] Forked 25177 +(25176) found +(25177) found +[12613] Forked 25178 +[12612] Forked 25179 +(25178) found +(25179) found +[12611] Forked 25180 +[12610] Forked 25181 +(25180) found +(25181) found +[12609] Forked 25182 +[12608] Forked 25183 +(25182) found +(25183) found +[12607] Forked 25184 +[12606] Forked 25185 +(25184) found +(25185) found +[12605] Forked 25186 +[12604] Forked 25187 +(25186) found +(25187) found +[12603] Forked 25188 +[12602] Forked 25189 +(25188) found +(25189) found +[12601] Forked 25190 +[12600] Forked 25191 +(25190) found +(25191) found +[12599] Forked 25192 +[12598] Forked 25193 +(25192) found +(25193) found +[12597] Forked 25194 +[12596] Forked 25195 +(25194) found +(25195) found +[12595] Forked 25196 +[12594] Forked 25197 +(25196) found +(25197) found +[12593] Forked 25198 +[12592] Forked 25199 +(25198) found +(25199) found +[12591] Forked 25200 +[12590] Forked 25201 +(25200) found +(25201) found +[12589] Forked 25202 +[12588] Forked 25203 +(25202) found +(25203) found +[12587] Forked 25204 +[12586] Forked 25205 +(25204) found +(25205) found +[12585] Forked 25206 +[12584] Forked 25207 +(25206) found +(25207) found +[12583] Forked 25208 +[12582] Forked 25209 +(25208) found +(25209) found +[12581] Forked 25210 +[12580] Forked 25211 +(25210) found +(25211) found +[12579] Forked 25212 +[12578] Forked 25213 +(25212) found +(25213) found +[12577] Forked 25214 +[12576] Forked 25215 +(25214) found +(25215) found +[12575] Forked 25216 +[12574] Forked 25217 +(25216) found +(25217) found +[12573] Forked 25218 +[12572] Forked 25219 +(25218) found +(25219) found +[12571] Forked 25220 +[12570] Forked 25221 +(25220) found +(25221) found +[12569] Forked 25222 +[12568] Forked 25223 +(25222) found +(25223) found +[12567] Forked 25224 +(25224) found +[12566] Forked 25225 +(25225) found +[12565] Forked 25226 +(25226) found +[12564] Forked 25227 +(25227) found +[12563] Forked 25228 +(25228) found +[12562] Forked 25229 +(25229) found +[12561] Forked 25230 +(25230) found +[12560] Forked 25231 +(25231) found +[12559] Forked 25232 +(25232) found +[12558] Forked 25233 +(25233) found +[12557] Forked 25234 +(25234) found +[12556] Forked 25235 +(25235) found +[12555] Forked 25236 +(25236) found +[12554] Forked 25237 +(25237) found +[12553] Forked 25238 +(25238) found +[12552] Forked 25239 +(25239) found +[12551] Forked 25240 +(25240) found +[12550] Forked 25241 +(25241) found +[12549] Forked 25242 +(25242) found +[12548] Forked 25243 +(25243) found +[12547] Forked 25244 +(25244) found +[12546] Forked 25245 +(25245) found +[12545] Forked 25246 +(25246) found +[12544] Forked 25247 +(25247) found +[12543] Forked 25248 +(25248) found +[12542] Forked 25249 +(25249) found +[12541] Forked 25250 +(25250) found +[12540] Forked 25251 +(25251) found +[12539] Forked 25252 +(25252) found +[12538] Forked 25253 +(25253) found +[12537] Forked 25254 +(25254) found +[12536] Forked 25255 +(25255) found +[12535] Forked 25256 +(25256) found +[12534] Forked 25257 +(25257) found +[12533] Forked 25258 +(25258) found +[12532] Forked 25259 +(25259) found +[12531] Forked 25260 +(25260) found +[12530] Forked 25261 +[12529] Forked 25262 +(25261) found +(25262) found +[12528] Forked 25263 +[12527] Forked 25264 +(25263) found +(25264) found +[12526] Forked 25265 +[12525] Forked 25266 +(25265) found +(25266) found +[12524] Forked 25267 +[12523] Forked 25268 +(25267) found +(25268) found +[12522] Forked 25269 +[12521] Forked 25270 +(25269) found +(25270) found +[12520] Forked 25271 +[12519] Forked 25273 +(25271) found +(25273) found +[12518] Forked 25274 +(25274) found +[12517] Forked 25275 +(25275) found +[12516] Forked 25276 +(25276) found +[12515] Forked 25277 +(25277) found +[12514] Forked 25278 +(25278) found +[12513] Forked 25279 +(25279) found +[12512] Forked 25280 +(25280) found +[12511] Forked 25281 +(25281) found +[12510] Forked 25282 +(25282) found +[12509] Forked 25283 +(25283) found +[12508] Forked 25284 +(25284) found +[12507] Forked 25285 +(25285) found +[12506] Forked 25286 +(25286) found +[12505] Forked 25287 +(25287) found +[12504] Forked 25288 +(25288) found +[12503] Forked 25289 +(25289) found +[12502] Forked 25290 +(25290) found +[12501] Forked 25291 +(25291) found +[12500] Forked 25292 +(25292) found +[12499] Forked 25293 +[12498] Forked 25294 +(25293) found +(25294) found +[12497] Forked 25295 +[12496] Forked 25296 +(25295) found +(25296) found +[12495] Forked 25297 +[12494] Forked 25298 +(25297) found +(25298) found +[12493] Forked 25299 +[12492] Forked 25300 +(25299) found +(25300) found +[12491] Forked 25301 +[12490] Forked 25302 +(25301) found +(25302) found +[12489] Forked 25303 +[12488] Forked 25304 +(25303) found +(25304) found +[12487] Forked 25305 +[12486] Forked 25306 +(25305) found +(25306) found +[12485] Forked 25307 +[12484] Forked 25308 +(25307) found +(25308) found +[12483] Forked 25309 +[12482] Forked 25310 +(25309) found +(25310) found +[12481] Forked 25311 +[12480] Forked 25312 +(25311) found +(25312) found +[12479] Forked 25313 +[12478] Forked 25314 +(25313) found +(25314) found +[12477] Forked 25315 +[12476] Forked 25316 +(25315) found +(25316) found +[12475] Forked 25317 +[12474] Forked 25318 +(25317) found +(25318) found +[12473] Forked 25319 +[12472] Forked 25320 +(25319) found +(25320) found +[12471] Forked 25321 +[12470] Forked 25322 +(25321) found +(25322) found +[12469] Forked 25323 +[12468] Forked 25324 +(25323) found +(25324) found +[12467] Forked 25325 +[12466] Forked 25326 +(25325) found +(25326) found +[12465] Forked 25327 +[12464] Forked 25328 +(25327) found +(25328) found +[12463] Forked 25329 +[12462] Forked 25330 +(25329) found +(25330) found +[12461] Forked 25331 +[12460] Forked 25332 +(25331) found +(25332) found +[12459] Forked 25333 +[12458] Forked 25334 +(25333) found +(25334) found +[12457] Forked 25335 +[12456] Forked 25336 +(25335) found +(25336) found +[12455] Forked 25337 +[12454] Forked 25338 +(25337) found +(25338) found +[12453] Forked 25339 +[12452] Forked 25340 +(25339) found +(25340) found +[12451] Forked 25341 +[12450] Forked 25342 +(25341) found +(25342) found +[12449] Forked 25343 +[12448] Forked 25344 +(25343) found +(25344) found +[12447] Forked 25345 +(25345) found +[12446] Forked 25346 +(25346) found +[12445] Forked 25347 +(25347) found +[12444] Forked 25348 +(25348) found +[12443] Forked 25349 +(25349) found +[12442] Forked 25350 +(25350) found +[12441] Forked 25351 +(25351) found +[12440] Forked 25352 +(25352) found +[12439] Forked 25353 +(25353) found +[12438] Forked 25354 +(25354) found +[12437] Forked 25355 +(25355) found +[12436] Forked 25356 +(25356) found +[12435] Forked 25357 +(25357) found +[12434] Forked 25358 +(25358) found +[12433] Forked 25359 +(25359) found +[12432] Forked 25360 +(25360) found +[12431] Forked 25361 +(25361) found +[12430] Forked 25362 +(25362) found +[12429] Forked 25363 +(25363) found +[12428] Forked 25364 +(25364) found +[12427] Forked 25365 +(25365) found +[12426] Forked 25366 +(25366) found +[12425] Forked 25367 +(25367) found +[12424] Forked 25368 +(25368) found +[12423] Forked 25369 +(25369) found +[12422] Forked 25370 +(25370) found +[12421] Forked 25371 +(25371) found +[12420] Forked 25372 +(25372) found +[12419] Forked 25373 +(25373) found +[12418] Forked 25374 +(25374) found +[12417] Forked 25375 +(25375) found +[12416] Forked 25376 +(25376) found +[12415] Forked 25377 +(25377) found +[12414] Forked 25378 +(25378) found +[12413] Forked 25379 +(25379) found +[12412] Forked 25380 +(25380) found +[12411] Forked 25381 +[12410] Forked 25382 +(25381) found +(25382) found +[12409] Forked 25383 +(25383) found +[12408] Forked 25384 +(25384) found +[12407] Forked 25385 +(25385) found +[12406] Forked 25386 +(25386) found +[12405] Forked 25387 +(25387) found +[12404] Forked 25388 +(25388) found +[12403] Forked 25389 +(25389) found +[12402] Forked 25390 +[12401] Forked 25391 +(25390) found +(25391) found +[12400] Forked 25392 +[12399] Forked 25393 +(25392) found +(25393) found +[12398] Forked 25394 +[12397] Forked 25395 +(25394) found +(25395) found +[12396] Forked 25396 +[12395] Forked 25397 +(25396) found +(25397) found +[12394] Forked 25398 +[12393] Forked 25399 +(25398) found +(25399) found +[12392] Forked 25400 +[12391] Forked 25401 +(25400) found +(25401) found +[12390] Forked 25402 +[12389] Forked 25403 +(25402) found +(25403) found +[12388] Forked 25404 +[12387] Forked 25405 +(25404) found +(25405) found +[12386] Forked 25406 +[12385] Forked 25407 +(25406) found +(25407) found +[12384] Forked 25408 +[12383] Forked 25409 +(25408) found +(25409) found +[12382] Forked 25410 +[12381] Forked 25411 +(25410) found +(25411) found +[12380] Forked 25412 +[12379] Forked 25413 +(25412) found +(25413) found +[12378] Forked 25414 +[12377] Forked 25416 +(25414) found +(25416) found +[12376] Forked 25417 +[12375] Forked 25418 +(25417) found +(25418) found +[12374] Forked 25419 +[12373] Forked 25420 +(25419) found +(25420) found +[12372] Forked 25421 +[12371] Forked 25422 +(25421) found +(25422) found +[12370] Forked 25423 +[12369] Forked 25424 +(25423) found +(25424) found +[12368] Forked 25426 +[12367] Forked 25428 +(25426) found +(25428) found +[12366] Forked 25430 +[12365] Forked 25431 +(25430) found +(25431) found +[12364] Forked 25432 +[12363] Forked 25433 +(25432) found +(25433) found +[12362] Forked 25434 +[12361] Forked 25435 +(25434) found +(25435) found +[12360] Forked 25436 +[12359] Forked 25437 +(25436) found +(25437) found +[12358] Forked 25438 +[12357] Forked 25439 +(25438) found +(25439) found +[12356] Forked 25440 +[12355] Forked 25441 +(25440) found +(25441) found +[12354] Forked 25442 +[12353] Forked 25443 +(25442) found +(25443) found +[12352] Forked 25444 +[12351] Forked 25449 +(25444) found +(25449) found +[12350] Forked 25450 +[12349] Forked 25451 +(25450) found +(25451) found +[12348] Forked 25452 +[12347] Forked 25453 +(25452) found +(25453) found +[12346] Forked 25454 +[12345] Forked 25455 +(25454) found +(25455) found +[12344] Forked 25456 +[12343] Forked 25457 +(25456) found +(25457) found +[12342] Forked 25458 +[12341] Forked 25459 +(25458) found +(25459) found +[12340] Forked 25460 +[12339] Forked 25461 +(25460) found +(25461) found +[12338] Forked 25462 +[12337] Forked 25463 +(25462) found +(25463) found +[12336] Forked 25464 +[12335] Forked 25465 +(25464) found +(25465) found +[12334] Forked 25466 +[12333] Forked 25467 +(25466) found +(25467) found +[12332] Forked 25468 +[12331] Forked 25469 +(25468) found +(25469) found +[12330] Forked 25470 +[12329] Forked 25471 +(25470) found +(25471) found +[12328] Forked 25472 +[12327] Forked 25474 +(25472) found +(25474) found +[12326] Forked 25475 +(25475) found +[12325] Forked 25476 +(25476) found +[12324] Forked 25477 +(25477) found +[12323] Forked 25478 +(25478) found +[12322] Forked 25479 +(25479) found +[12321] Forked 25480 +(25480) found +[12320] Forked 25481 +(25481) found +[12319] Forked 25482 +(25482) found +[12318] Forked 25483 +(25483) found +[12317] Forked 25484 +(25484) found +[12316] Forked 25485 +(25485) found +[12315] Forked 25486 +(25486) found +[12314] Forked 25487 +(25487) found +[12313] Forked 25488 +(25488) found +[12312] Forked 25489 +(25489) found +[12311] Forked 25490 +(25490) found +[12310] Forked 25491 +(25491) found +[12309] Forked 25492 +(25492) found +[12308] Forked 25493 +(25493) found +[12307] Forked 25494 +(25494) found +[12306] Forked 25495 +(25495) found +[12305] Forked 25496 +(25496) found +[12304] Forked 25497 +(25497) found +[12303] Forked 25498 +(25498) found +[12302] Forked 25499 +(25499) found +[12301] Forked 25500 +(25500) found +[12300] Forked 25501 +(25501) found +[12299] Forked 25502 +(25502) found +[12298] Forked 25503 +(25503) found +[12297] Forked 25504 +(25504) found +[12296] Forked 25505 +(25505) found +[12295] Forked 25506 +(25506) found +[12294] Forked 25507 +(25507) found +[12293] Forked 25508 +(25508) found +[12292] Forked 25509 +(25509) found +[12291] Forked 25510 +(25510) found +[12290] Forked 25511 +(25511) found +[12289] Forked 25512 +(25512) found +[12288] Forked 25513 +(25513) found +[12287] Forked 25514 +[12286] Forked 25515 +(25514) found +(25515) found +[12285] Forked 25516 +[12284] Forked 25517 +(25516) found +(25517) found +[12283] Forked 25518 +[12282] Forked 25519 +(25518) found +(25519) found +[12281] Forked 25520 +[12280] Forked 25521 +(25520) found +(25521) found +[12279] Forked 25522 +[12278] Forked 25523 +(25522) found +(25523) found +[12277] Forked 25524 +[12276] Forked 25525 +(25524) found +(25525) found +[12275] Forked 25526 +[12274] Forked 25527 +(25526) found +(25527) found +[12273] Forked 25528 +[12272] Forked 25529 +(25528) found +(25529) found +[12271] Forked 25530 +[12270] Forked 25531 +(25530) found +(25531) found +[12269] Forked 25532 +[12268] Forked 25533 +(25532) found +(25533) found +[12267] Forked 25534 +[12266] Forked 25535 +(25534) found +(25535) found +[12265] Forked 25536 +[12264] Forked 25537 +(25536) found +(25537) found +[12263] Forked 25538 +[12262] Forked 25539 +(25538) found +(25539) found +[12261] Forked 25540 +[12260] Forked 25541 +(25540) found +(25541) found +[12259] Forked 25542 +[12258] Forked 25543 +(25542) found +(25543) found +[12257] Forked 25544 +[12256] Forked 25545 +(25544) found +(25545) found +[12255] Forked 25546 +[12254] Forked 25547 +(25546) found +(25547) found +[12253] Forked 25548 +[12252] Forked 25549 +(25548) found +(25549) found +[12251] Forked 25550 +[12250] Forked 25551 +(25550) found +(25551) found +[12249] Forked 25552 +[12248] Forked 25553 +(25552) found +(25553) found +[12247] Forked 25554 +[12246] Forked 25555 +(25554) found +(25555) found +[12245] Forked 25556 +[12244] Forked 25557 +(25556) found +(25557) found +[12243] Forked 25558 +(25558) found +[12242] Forked 25559 +(25559) found +[12241] Forked 25560 +(25560) found +[12240] Forked 25561 +(25561) found +[12239] Forked 25562 +(25562) found +[12238] Forked 25563 +(25563) found +[12237] Forked 25564 +(25564) found +[12236] Forked 25565 +(25565) found +[12235] Forked 25566 +(25566) found +[12234] Forked 25567 +(25567) found +[12233] Forked 25568 +(25568) found +[12232] Forked 25569 +(25569) found +[12231] Forked 25570 +(25570) found +[12230] Forked 25571 +(25571) found +[12229] Forked 25572 +(25572) found +[12228] Forked 25573 +(25573) found +[12227] Forked 25574 +(25574) found +[12226] Forked 25575 +(25575) found +[12225] Forked 25576 +(25576) found +[12224] Forked 25577 +(25577) found +[12223] Forked 25578 +(25578) found +[12222] Forked 25579 +(25579) found +[12221] Forked 25580 +(25580) found +[12220] Forked 25581 +(25581) found +[12219] Forked 25582 +(25582) found +[12218] Forked 25583 +(25583) found +[12217] Forked 25584 +(25584) found +[12216] Forked 25585 +(25585) found +[12215] Forked 25586 +(25586) found +[12214] Forked 25587 +(25587) found +[12213] Forked 25588 +(25588) found +[12212] Forked 25589 +(25589) found +[12211] Forked 25590 +(25590) found +[12210] Forked 25591 +(25591) found +[12209] Forked 25592 +(25592) found +[12208] Forked 25593 +(25593) found +[12207] Forked 25595 +(25595) found +[12206] Forked 25596 +(25596) found +[12205] Forked 25597 +(25597) found +[12204] Forked 25598 +(25598) found +[12203] Forked 25599 +(25599) found +[12202] Forked 25600 +(25600) found +[12201] Forked 25601 +(25601) found +[12200] Forked 25602 +(25602) found +[12199] Forked 25603 +(25603) found +[12198] Forked 25604 +(25604) found +[12197] Forked 25605 +(25605) found +[12196] Forked 25606 +(25606) found +[12195] Forked 25607 +(25607) found +[12194] Forked 25608 +(25608) found +[12193] Forked 25609 +(25609) found +[12192] Forked 25610 +(25610) found +[12191] Forked 25611 +(25611) found +[12190] Forked 25612 +(25612) found +[12189] Forked 25613 +(25613) found +[12188] Forked 25614 +(25614) found +[12187] Forked 25615 +(25615) found +[12186] Forked 25616 +(25616) found +[12185] Forked 25617 +(25617) found +[12184] Forked 25618 +(25618) found +[12183] Forked 25619 +(25619) found +[12182] Forked 25620 +(25620) found +[12181] Forked 25621 +(25621) found +[12180] Forked 25622 +(25622) found +[12179] Forked 25623 +(25623) found +[12178] Forked 25624 +(25624) found +[12177] Forked 25625 +(25625) found +[12176] Forked 25626 +(25626) found +[12175] Forked 25627 +(25627) found +[12174] Forked 25628 +(25628) found +[12173] Forked 25629 +(25629) found +[12172] Forked 25630 +(25630) found +[12171] Forked 25631 +(25631) found +[12170] Forked 25632 +(25632) found +[12169] Forked 25633 +(25633) found +[12168] Forked 25634 +(25634) found +[12167] Forked 25635 +(25635) found +[12166] Forked 25636 +[12165] Forked 25637 +(25636) found +(25637) found +[12164] Forked 25638 +[12163] Forked 25639 +(25638) found +(25639) found +[12162] Forked 25640 +[12161] Forked 25641 +(25640) found +(25641) found +[12160] Forked 25642 +[12159] Forked 25643 +(25642) found +(25643) found +[12158] Forked 25644 +[12157] Forked 25645 +(25644) found +(25645) found +[12156] Forked 25646 +[12155] Forked 25647 +(25646) found +(25647) found +[12154] Forked 25648 +[12153] Forked 25649 +(25648) found +(25649) found +[12152] Forked 25650 +[12151] Forked 25651 +(25650) found +(25651) found +[12150] Forked 25652 +[12149] Forked 25653 +(25652) found +(25653) found +[12148] Forked 25654 +[12147] Forked 25655 +(25654) found +(25655) found +[12146] Forked 25656 +[12145] Forked 25657 +(25656) found +(25657) found +[12144] Forked 25658 +[12143] Forked 25659 +(25658) found +(25659) found +[12142] Forked 25660 +[12141] Forked 25661 +(25660) found +(25661) found +[12140] Forked 25662 +[12139] Forked 25663 +(25662) found +(25663) found +[12138] Forked 25664 +[12137] Forked 25665 +(25664) found +(25665) found +[12136] Forked 25666 +[12135] Forked 25667 +(25666) found +(25667) found +[12134] Forked 25668 +[12133] Forked 25669 +(25668) found +(25669) found +[12132] Forked 25670 +[12131] Forked 25671 +(25670) found +(25671) found +[12130] Forked 25672 +[12129] Forked 25673 +(25672) found +(25673) found +[12128] Forked 25674 +[12127] Forked 25675 +(25674) found +(25675) found +[12126] Forked 25676 +[12125] Forked 25677 +(25676) found +(25677) found +[12124] Forked 25678 +[12123] Forked 25679 +(25678) found +(25679) found +[12122] Forked 25680 +[12121] Forked 25681 +(25680) found +(25681) found +[12120] Forked 25682 +[12119] Forked 25683 +(25682) found +(25683) found +[12118] Forked 25684 +[12117] Forked 25685 +(25684) found +(25685) found +[12116] Forked 25686 +[12115] Forked 25687 +(25686) found +(25687) found +[12114] Forked 25688 +[12113] Forked 25689 +(25688) found +(25689) found +[12112] Forked 25690 +[12111] Forked 25691 +(25690) found +(25691) found +[12110] Forked 25692 +[12109] Forked 25693 +(25692) found +(25693) found +[12108] Forked 25694 +[12107] Forked 25695 +(25694) found +(25695) found +[12106] Forked 25696 +[12105] Forked 25697 +(25696) found +(25697) found +[12104] Forked 25698 +[12103] Forked 25699 +(25698) found +(25699) found +[12102] Forked 25700 +[12101] Forked 25701 +(25700) found +(25701) found +[12100] Forked 25702 +[12099] Forked 25703 +(25702) found +(25703) found +[12098] Forked 25704 +[12097] Forked 25705 +(25704) found +(25705) found +[12096] Forked 25706 +[12095] Forked 25707 +(25706) found +(25707) found +[12094] Forked 25708 +[12093] Forked 25709 +(25708) found +(25709) found +[12092] Forked 25710 +[12091] Forked 25711 +(25710) found +(25711) found +[12090] Forked 25712 +[12089] Forked 25713 +(25712) found +(25713) found +[12088] Forked 25714 +[12087] Forked 25715 +(25714) found +(25715) found +[12086] Forked 25716 +[12085] Forked 25717 +(25716) found +(25717) found +[12084] Forked 25718 +[12083] Forked 25719 +(25718) found +(25719) found +[12082] Forked 25720 +[12081] Forked 25721 +(25720) found +(25721) found +[12080] Forked 25722 +[12079] Forked 25723 +(25722) found +(25723) found +[12078] Forked 25724 +[12077] Forked 25725 +(25724) found +(25725) found +[12076] Forked 25726 +(25726) found +[12075] Forked 25727 +(25727) found +[12074] Forked 25728 +(25728) found +[12073] Forked 25729 +(25729) found +[12072] Forked 25730 +(25730) found +[12071] Forked 25731 +(25731) found +[12070] Forked 25732 +(25732) found +[12069] Forked 25733 +(25733) found +[12068] Forked 25734 +(25734) found +[12067] Forked 25735 +(25735) found +[12066] Forked 25736 +(25736) found +[12065] Forked 25737 +(25737) found +[12064] Forked 25738 +(25738) found +[12063] Forked 25739 +(25739) found +[12062] Forked 25740 +(25740) found +[12061] Forked 25741 +(25741) found +[12060] Forked 25742 +(25742) found +[12059] Forked 25743 +(25743) found +[12058] Forked 25744 +(25744) found +[12057] Forked 25745 +(25745) found +[12056] Forked 25746 +(25746) found +[12055] Forked 25747 +(25747) found +[12054] Forked 25748 +(25748) found +[12053] Forked 25749 +(25749) found +[12052] Forked 25750 +(25750) found +[12051] Forked 25751 +(25751) found +[12050] Forked 25752 +(25752) found +[12049] Forked 25753 +(25753) found +[12048] Forked 25754 +(25754) found +[12047] Forked 25755 +(25755) found +[12046] Forked 25756 +(25756) found +[12045] Forked 25757 +(25757) found +[12044] Forked 25758 +(25758) found +[12043] Forked 25759 +(25759) found +[12042] Forked 25760 +(25760) found +[12041] Forked 25761 +(25761) found +[12040] Forked 25762 +(25762) found +[12039] Forked 25763 +(25763) found +[12038] Forked 25764 +[12037] Forked 25765 +(25764) found +(25765) found +[12036] Forked 25766 +[12035] Forked 25767 +(25766) found +(25767) found +[12034] Forked 25768 +[12033] Forked 25769 +(25768) found +(25769) found +[12032] Forked 25770 +[12031] Forked 25771 +(25770) found +(25771) found +[12030] Forked 25772 +[12029] Forked 25774 +(25772) found +(25774) found +[12028] Forked 25775 +[12027] Forked 25776 +(25775) found +(25776) found +[12026] Forked 25777 +[12025] Forked 25778 +(25777) found +(25778) found +[12024] Forked 25779 +[12023] Forked 25780 +(25780) found +(25779) found +[12022] Forked 25781 +(25781) found +[12021] Forked 25782 +(25782) found +[12020] Forked 25783 +(25783) found +[12019] Forked 25784 +(25784) found +[12018] Forked 25785 +(25785) found +[12017] Forked 25786 +(25786) found +[12016] Forked 25787 +(25787) found +[12015] Forked 25788 +(25788) found +[12014] Forked 25789 +(25789) found +[12013] Forked 25790 +(25790) found +[12012] Forked 25791 +(25791) found +[12011] Forked 25792 +(25792) found +[12010] Forked 25793 +(25793) found +[12009] Forked 25794 +(25794) found +[12008] Forked 25795 +(25795) found +[12007] Forked 25796 +(25796) found +[12006] Forked 25797 +(25797) found +[12005] Forked 25798 +(25798) found +[12004] Forked 25799 +(25799) found +[12003] Forked 25800 +(25800) found +[12002] Forked 25801 +(25801) found +[12001] Forked 25802 +(25802) found +[12000] Forked 25803 +(25803) found +[11999] Forked 25804 +(25804) found +[11998] Forked 25805 +(25805) found +[11997] Forked 25806 +(25806) found +[11996] Forked 25807 +(25807) found +[11995] Forked 25808 +(25808) found +[11994] Forked 25809 +(25809) found +[11993] Forked 25810 +(25810) found +[11992] Forked 25811 +(25811) found +[11991] Forked 25812 +(25812) found +[11990] Forked 25813 +(25813) found +[11989] Forked 25814 +(25814) found +[11988] Forked 25815 +(25815) found +[11987] Forked 25816 +(25816) found +[11986] Forked 25817 +(25817) found +[11985] Forked 25818 +(25818) found +[11984] Forked 25819 +(25819) found +[11983] Forked 25820 +(25820) found +[11982] Forked 25821 +(25821) found +[11981] Forked 25822 +(25822) found +[11980] Forked 25823 +(25823) found +[11979] Forked 25824 +(25824) found +[11978] Forked 25825 +(25825) found +[11977] Forked 25826 +(25826) found +[11976] Forked 25827 +(25827) found +[11975] Forked 25828 +(25828) found +[11974] Forked 25829 +(25829) found +[11973] Forked 25830 +(25830) found +[11972] Forked 25831 +(25831) found +[11971] Forked 25832 +(25832) found +[11970] Forked 25833 +(25833) found +[11969] Forked 25834 +(25834) found +[11968] Forked 25835 +(25835) found +[11967] Forked 25836 +[11966] Forked 25837 +(25836) found +(25837) found +[11965] Forked 25838 +[11964] Forked 25839 +(25838) found +(25839) found +[11963] Forked 25840 +[11962] Forked 25841 +(25840) found +(25841) found +[11961] Forked 25842 +[11960] Forked 25843 +(25842) found +(25843) found +[11959] Forked 25844 +[11958] Forked 25845 +(25844) found +(25845) found +[11957] Forked 25846 +[11956] Forked 25847 +(25846) found +(25847) found +[11955] Forked 25848 +[11954] Forked 25849 +(25848) found +(25849) found +[11953] Forked 25850 +[11952] Forked 25851 +(25850) found +(25851) found +[11951] Forked 25852 +[11950] Forked 25853 +(25852) found +(25853) found +[11949] Forked 25854 +[11948] Forked 25855 +(25854) found +(25855) found +[11947] Forked 25856 +[11946] Forked 25857 +(25856) found +(25857) found +[11945] Forked 25858 +[11944] Forked 25859 +(25858) found +(25859) found +[11943] Forked 25860 +[11942] Forked 25861 +(25860) found +(25861) found +[11941] Forked 25862 +[11940] Forked 25863 +(25862) found +(25863) found +[11939] Forked 25864 +[11938] Forked 25865 +(25864) found +(25865) found +[11937] Forked 25866 +[11936] Forked 25867 +(25866) found +(25867) found +[11935] Forked 25868 +[11934] Forked 25869 +(25868) found +(25869) found +[11933] Forked 25870 +[11932] Forked 25871 +(25870) found +(25871) found +[11931] Forked 25872 +[11930] Forked 25873 +(25872) found +(25873) found +[11929] Forked 25874 +[11928] Forked 25875 +(25874) found +(25875) found +[11927] Forked 25876 +[11926] Forked 25877 +(25876) found +(25877) found +[11925] Forked 25878 +[11924] Forked 25879 +(25878) found +(25879) found +[11923] Forked 25880 +(25880) found +[11922] Forked 25881 +(25881) found +[11921] Forked 25882 +(25882) found +[11920] Forked 25883 +(25883) found +[11919] Forked 25884 +(25884) found +[11918] Forked 25885 +(25885) found +[11917] Forked 25886 +(25886) found +[11916] Forked 25887 +(25887) found +[11915] Forked 25888 +(25888) found +[11914] Forked 25889 +(25889) found +[11913] Forked 25890 +(25890) found +[11912] Forked 25891 +(25891) found +[11911] Forked 25892 +(25892) found +[11910] Forked 25893 +(25893) found +[11909] Forked 25894 +(25894) found +[11908] Forked 25895 +(25895) found +[11907] Forked 25896 +(25896) found +[11906] Forked 25897 +(25897) found +[11905] Forked 25898 +(25898) found +[11904] Forked 25899 +(25899) found +[11903] Forked 25900 +(25900) found +[11902] Forked 25901 +(25901) found +[11901] Forked 25902 +(25902) found +[11900] Forked 25903 +(25903) found +[11899] Forked 25904 +(25904) found +[11898] Forked 25905 +(25905) found +[11897] Forked 25906 +(25906) found +[11896] Forked 25907 +(25907) found +[11895] Forked 25908 +(25908) found +[11894] Forked 25909 +(25909) found +[11893] Forked 25910 +(25910) found +[11892] Forked 25911 +(25911) found +[11891] Forked 25912 +(25912) found +[11890] Forked 25913 +(25913) found +[11889] Forked 25914 +(25914) found +[11888] Forked 25915 +(25915) found +[11887] Forked 25916 +(25916) found +[11886] Forked 25917 +[11885] Forked 25918 +(25917) found +(25918) found +[11884] Forked 25919 +[11883] Forked 25920 +(25919) found +(25920) found +[11882] Forked 25921 +[11881] Forked 25922 +(25921) found +(25922) found +[11880] Forked 25923 +[11879] Forked 25924 +(25923) found +(25924) found +[11878] Forked 25925 +[11877] Forked 25926 +(25925) found +(25926) found +[11876] Forked 25927 +[11875] Forked 25928 +(25927) found +(25928) found +[11874] Forked 25929 +[11873] Forked 25930 +(25929) found +(25930) found +[11872] Forked 25931 +[11871] Forked 25932 +(25931) found +(25932) found +[11870] Forked 25933 +[11869] Forked 25934 +(25933) found +(25934) found +[11868] Forked 25935 +[11867] Forked 25936 +(25935) found +(25936) found +[11866] Forked 25937 +[11865] Forked 25938 +(25937) found +(25938) found +[11864] Forked 25939 +[11863] Forked 25940 +(25939) found +(25940) found +[11862] Forked 25941 +[11861] Forked 25942 +(25941) found +(25942) found +[11860] Forked 25943 +[11859] Forked 25944 +(25943) found +(25944) found +[11858] Forked 25945 +[11857] Forked 25946 +(25945) found +(25946) found +[11856] Forked 25947 +[11855] Forked 25948 +(25947) found +(25948) found +[11854] Forked 25949 +[11853] Forked 25950 +(25949) found +(25950) found +[11852] Forked 25951 +[11851] Forked 25952 +(25951) found +(25952) found +[11850] Forked 25953 +[11849] Forked 25954 +(25953) found +(25954) found +[11848] Forked 25955 +[11847] Forked 25956 +(25955) found +(25956) found +[11846] Forked 25957 +[11845] Forked 25958 +(25957) found +(25958) found +[11844] Forked 25959 +[11843] Forked 25960 +(25959) found +(25960) found +[11842] Forked 25961 +[11841] Forked 25962 +(25961) found +(25962) found +[11840] Forked 25963 +[11839] Forked 25964 +(25963) found +(25964) found +[11838] Forked 25965 +[11837] Forked 25966 +(25965) found +(25966) found +[11836] Forked 25967 +[11835] Forked 25968 +(25967) found +(25968) found +[11834] Forked 25969 +[11833] Forked 25970 +(25969) found +(25970) found +[11832] Forked 25971 +[11831] Forked 25972 +(25971) found +(25972) found +[11830] Forked 25973 +[11829] Forked 25974 +(25973) found +(25974) found +[11828] Forked 25975 +[11827] Forked 25976 +(25975) found +(25976) found +[11826] Forked 25977 +[11825] Forked 25978 +(25977) found +(25978) found +[11824] Forked 25979 +[11823] Forked 25980 +(25979) found +(25980) found +[11822] Forked 25981 +[11821] Forked 25982 +(25981) found +(25982) found +[11820] Forked 25983 +[11819] Forked 25984 +(25983) found +(25984) found +[11818] Forked 25985 +[11817] Forked 25986 +(25985) found +(25986) found +[11816] Forked 25987 +[11815] Forked 25988 +(25987) found +(25988) found +[11814] Forked 25989 +[11813] Forked 25990 +(25989) found +(25990) found +[11812] Forked 25991 +[11811] Forked 25992 +(25991) found +(25992) found +[11810] Forked 25993 +[11809] Forked 25994 +(25993) found +(25994) found +[11808] Forked 25995 +[11807] Forked 25996 +(25995) found +(25996) found +[11806] Forked 25997 +[11805] Forked 25998 +(25997) found +(25998) found +[11804] Forked 25999 +[11803] Forked 26000 +(25999) found +(26000) found +[11802] Forked 26001 +(26001) found +[11801] Forked 26002 +[11800] Forked 26003 +(26002) found +(26003) found +[11799] Forked 26004 +[11798] Forked 26005 +(26004) found +(26005) found +[11797] Forked 26006 +[11796] Forked 26007 +(26006) found +(26007) found +[11795] Forked 26008 +[11794] Forked 26009 +(26008) found +(26009) found +[11793] Forked 26010 +[11792] Forked 26011 +(26010) found +(26011) found +[11791] Forked 26012 +[11790] Forked 26013 +(26012) found +(26013) found +[11789] Forked 26014 +[11788] Forked 26015 +(26014) found +(26015) found +[11787] Forked 26016 +[11786] Forked 26017 +(26016) found +(26017) found +[11785] Forked 26018 +[11784] Forked 26019 +(26018) found +(26019) found +[11783] Forked 26020 +[11782] Forked 26021 +(26020) found +(26021) found +[11781] Forked 26022 +[11780] Forked 26023 +(26022) found +(26023) found +[11779] Forked 26024 +[11778] Forked 26025 +(26024) found +(26025) found +[11777] Forked 26026 +[11776] Forked 26027 +(26026) found +(26027) found +[11775] Forked 26028 +[11774] Forked 26029 +(26028) found +(26029) found +[11773] Forked 26030 +[11772] Forked 26031 +(26030) found +(26031) found +[11771] Forked 26032 +[11770] Forked 26033 +(26032) found +(26033) found +[11769] Forked 26034 +[11768] Forked 26035 +(26034) found +(26035) found +[11767] Forked 26036 +[11766] Forked 26037 +(26036) found +(26037) found +[11765] Forked 26038 +[11764] Forked 26039 +(26038) found +(26039) found +[11763] Forked 26040 +[11762] Forked 26041 +(26040) found +(26041) found +[11761] Forked 26042 +[11760] Forked 26043 +(26042) found +(26043) found +[11759] Forked 26044 +[11758] Forked 26045 +(26044) found +(26045) found +[11757] Forked 26046 +[11756] Forked 26047 +(26046) found +(26047) found +[11755] Forked 26048 +[11754] Forked 26050 +(26048) found +(26050) found +[11753] Forked 26051 +(26051) found +[11752] Forked 26052 +(26052) found +[11751] Forked 26053 +(26053) found +[11750] Forked 26054 +(26054) found +[11749] Forked 26055 +(26055) found +[11748] Forked 26056 +(26056) found +[11747] Forked 26057 +(26057) found +[11746] Forked 26058 +(26058) found +[11745] Forked 26059 +(26059) found +[11744] Forked 26060 +(26060) found +[11743] Forked 26061 +(26061) found +[11742] Forked 26062 +(26062) found +[11741] Forked 26063 +(26063) found +[11740] Forked 26064 +(26064) found +[11739] Forked 26065 +(26065) found +[11738] Forked 26066 +(26066) found +[11737] Forked 26067 +(26067) found +[11736] Forked 26068 +(26068) found +[11735] Forked 26069 +(26069) found +[11734] Forked 26070 +(26070) found +[11733] Forked 26071 +(26071) found +[11732] Forked 26072 +(26072) found +[11731] Forked 26073 +(26073) found +[11730] Forked 26074 +(26074) found +[11729] Forked 26075 +(26075) found +[11728] Forked 26076 +(26076) found +[11727] Forked 26077 +(26077) found +[11726] Forked 26078 +(26078) found +[11725] Forked 26079 +(26079) found +[11724] Forked 26080 +(26080) found +[11723] Forked 26081 +(26081) found +[11722] Forked 26082 +(26082) found +[11721] Forked 26083 +(26083) found +[11720] Forked 26084 +(26084) found +[11719] Forked 26085 +(26085) found +[11718] Forked 26086 +(26086) found +[11717] Forked 26087 +(26087) found +[11716] Forked 26088 +(26088) found +[11715] Forked 26089 +(26089) found +[11714] Forked 26090 +(26090) found +[11713] Forked 26091 +(26091) found +[11712] Forked 26092 +(26092) found +[11711] Forked 26093 +(26093) found +[11710] Forked 26094 +(26094) found +[11709] Forked 26095 +(26095) found +[11708] Forked 26096 +(26096) found +[11707] Forked 26097 +(26097) found +[11706] Forked 26098 +(26098) found +[11705] Forked 26099 +(26099) found +[11704] Forked 26100 +(26100) found +[11703] Forked 26101 +(26101) found +[11702] Forked 26102 +(26102) found +[11701] Forked 26103 +(26103) found +[11700] Forked 26104 +(26104) found +[11699] Forked 26105 +(26105) found +[11698] Forked 26106 +(26106) found +[11697] Forked 26107 +(26107) found +[11696] Forked 26108 +(26108) found +[11695] Forked 26109 +(26109) found +[11694] Forked 26110 +(26110) found +[11693] Forked 26111 +(26111) found +[11692] Forked 26112 +(26112) found +[11691] Forked 26113 +(26113) found +[11690] Forked 26114 +(26114) found +[11689] Forked 26115 +(26115) found +[11688] Forked 26116 +(26116) found +[11687] Forked 26117 +(26117) found +[11686] Forked 26118 +(26118) found +[11685] Forked 26119 +(26119) found +[11684] Forked 26120 +(26120) found +[11683] Forked 26121 +(26121) found +[11682] Forked 26122 +[11681] Forked 26123 +(26122) found +(26123) found +[11680] Forked 26124 +[11679] Forked 26125 +(26124) found +(26125) found +[11678] Forked 26126 +[11677] Forked 26127 +(26126) found +(26127) found +[11676] Forked 26128 +[11675] Forked 26129 +(26128) found +(26129) found +[11674] Forked 26130 +[11673] Forked 26131 +(26130) found +(26131) found +[11672] Forked 26132 +[11671] Forked 26133 +(26132) found +(26133) found +[11670] Forked 26134 +[11669] Forked 26135 +(26134) found +(26135) found +[11668] Forked 26136 +[11667] Forked 26137 +(26136) found +(26137) found +[11666] Forked 26138 +[11665] Forked 26139 +(26138) found +(26139) found +[11664] Forked 26140 +[11663] Forked 26141 +(26140) found +(26141) found +[11662] Forked 26142 +[11661] Forked 26143 +(26142) found +(26143) found +[11660] Forked 26144 +[11659] Forked 26145 +(26144) found +(26145) found +[11658] Forked 26146 +[11657] Forked 26147 +(26146) found +(26147) found +[11656] Forked 26148 +[11655] Forked 26149 +(26148) found +(26149) found +[11654] Forked 26150 +[11653] Forked 26151 +(26150) found +(26151) found +[11652] Forked 26152 +[11651] Forked 26153 +(26152) found +(26153) found +[11650] Forked 26154 +[11649] Forked 26155 +(26154) found +(26155) found +[11648] Forked 26156 +[11647] Forked 26157 +(26156) found +(26157) found +[11646] Forked 26158 +[11645] Forked 26159 +(26158) found +(26159) found +[11644] Forked 26160 +[11643] Forked 26161 +(26160) found +(26161) found +[11642] Forked 26162 +[11641] Forked 26163 +(26162) found +(26163) found +[11640] Forked 26164 +[11639] Forked 26165 +(26164) found +(26165) found +[11638] Forked 26166 +[11637] Forked 26168 +(26166) found +(26168) found +[11636] Forked 26169 +(26169) found +[11635] Forked 26170 +(26170) found +[11634] Forked 26171 +(26171) found +[11633] Forked 26172 +(26172) found +[11632] Forked 26173 +(26173) found +[11631] Forked 26174 +(26174) found +[11630] Forked 26175 +(26175) found +[11629] Forked 26176 +(26176) found +[11628] Forked 26177 +(26177) found +[11627] Forked 26178 +(26178) found +[11626] Forked 26179 +(26179) found +[11625] Forked 26180 +(26180) found +[11624] Forked 26181 +(26181) found +[11623] Forked 26182 +(26182) found +[11622] Forked 26183 +(26183) found +[11621] Forked 26184 +(26184) found +[11620] Forked 26185 +(26185) found +[11619] Forked 26186 +(26186) found +[11618] Forked 26187 +(26187) found +[11617] Forked 26188 +(26188) found +[11616] Forked 26189 +(26189) found +[11615] Forked 26190 +(26190) found +[11614] Forked 26191 +(26191) found +[11613] Forked 26192 +(26192) found +[11612] Forked 26193 +(26193) found +[11611] Forked 26194 +(26194) found +[11610] Forked 26195 +(26195) found +[11609] Forked 26196 +(26196) found +[11608] Forked 26197 +(26197) found +[11607] Forked 26198 +(26198) found +[11606] Forked 26199 +(26199) found +[11605] Forked 26200 +(26200) found +[11604] Forked 26201 +(26201) found +[11603] Forked 26202 +(26202) found +[11602] Forked 26203 +[11601] Forked 26204 +(26203) found +(26204) found +[11600] Forked 26205 +[11599] Forked 26206 +(26205) found +(26206) found +[11598] Forked 26207 +(26207) found +[11597] Forked 26208 +(26208) found +[11596] Forked 26209 +(26209) found +[11595] Forked 26210 +(26210) found +[11594] Forked 26211 +(26211) found +[11593] Forked 26212 +(26212) found +[11592] Forked 26213 +(26213) found +[11591] Forked 26214 +(26214) found +[11590] Forked 26215 +(26215) found +[11589] Forked 26216 +(26216) found +[11588] Forked 26217 +(26217) found +[11587] Forked 26218 +(26218) found +[11586] Forked 26219 +(26219) found +[11585] Forked 26220 +(26220) found +[11584] Forked 26221 +(26221) found +[11583] Forked 26222 +(26222) found +[11582] Forked 26223 +(26223) found +[11581] Forked 26224 +(26224) found +[11580] Forked 26225 +(26225) found +[11579] Forked 26226 +(26226) found +[11578] Forked 26227 +(26227) found +[11577] Forked 26228 +(26228) found +[11576] Forked 26229 +(26229) found +[11575] Forked 26230 +(26230) found +[11574] Forked 26231 +(26231) found +[11573] Forked 26232 +(26232) found +[11572] Forked 26233 +(26233) found +[11571] Forked 26234 +(26234) found +[11570] Forked 26235 +(26235) found +[11569] Forked 26236 +(26236) found +[11568] Forked 26237 +(26237) found +[11567] Forked 26238 +(26238) found +[11566] Forked 26239 +(26239) found +[11565] Forked 26240 +(26240) found +[11564] Forked 26241 +(26241) found +[11563] Forked 26242 +(26242) found +[11562] Forked 26243 +(26243) found +[11561] Forked 26244 +(26244) found +[11560] Forked 26245 +(26245) found +[11559] Forked 26246 +(26246) found +[11558] Forked 26247 +(26247) found +[11557] Forked 26248 +(26248) found +[11556] Forked 26249 +(26249) found +[11555] Forked 26250 +(26250) found +[11554] Forked 26251 +(26251) found +[11553] Forked 26252 +(26252) found +[11552] Forked 26253 +(26253) found +[11551] Forked 26254 +(26254) found +[11550] Forked 26255 +(26255) found +[11549] Forked 26256 +(26256) found +[11548] Forked 26257 +(26257) found +[11547] Forked 26258 +(26258) found +[11546] Forked 26259 +(26259) found +[11545] Forked 26260 +(26260) found +[11544] Forked 26261 +(26261) found +[11543] Forked 26262 +(26262) found +[11542] Forked 26263 +(26263) found +[11541] Forked 26264 +(26264) found +[11540] Forked 26265 +(26265) found +[11539] Forked 26266 +(26266) found +[11538] Forked 26267 +(26267) found +[11537] Forked 26268 +(26268) found +[11536] Forked 26269 +(26269) found +[11535] Forked 26270 +(26270) found +[11534] Forked 26271 +(26271) found +[11533] Forked 26272 +(26272) found +[11532] Forked 26273 +(26273) found +[11531] Forked 26274 +[11530] Forked 26275 +(26274) found +(26275) found +[11529] Forked 26276 +[11528] Forked 26277 +(26276) found +(26277) found +[11527] Forked 26278 +[11526] Forked 26279 +(26278) found +(26279) found +[11525] Forked 26280 +[11524] Forked 26281 +(26280) found +(26281) found +[11523] Forked 26282 +[11522] Forked 26283 +(26282) found +(26283) found +[11521] Forked 26284 +[11520] Forked 26285 +(26284) found +(26285) found +[11519] Forked 26286 +[11518] Forked 26287 +(26286) found +(26287) found +[11517] Forked 26288 +[11516] Forked 26289 +(26288) found +(26289) found +[11515] Forked 26290 +[11514] Forked 26291 +(26290) found +(26291) found +[11513] Forked 26292 +[11512] Forked 26293 +(26292) found +(26293) found +[11511] Forked 26294 +[11510] Forked 26295 +(26294) found +(26295) found +[11509] Forked 26296 +[11508] Forked 26297 +(26296) found +(26297) found +[11507] Forked 26298 +[11506] Forked 26299 +(26298) found +(26299) found +[11505] Forked 26300 +[11504] Forked 26301 +(26300) found +(26301) found +[11503] Forked 26302 +[11502] Forked 26303 +(26302) found +(26303) found +[11501] Forked 26304 +[11500] Forked 26305 +(26304) found +(26305) found +[11499] Forked 26306 +[11498] Forked 26307 +(26306) found +(26307) found +[11497] Forked 26308 +[11496] Forked 26309 +(26308) found +(26309) found +[11495] Forked 26310 +[11494] Forked 26311 +(26310) found +(26311) found +[11493] Forked 26312 +[11492] Forked 26314 +(26312) found +(26314) found +[11491] Forked 26315 +(26315) found +[11490] Forked 26316 +(26316) found +[11489] Forked 26317 +(26317) found +[11488] Forked 26318 +(26318) found +[11487] Forked 26319 +(26319) found +[11486] Forked 26320 +(26320) found +[11485] Forked 26321 +(26321) found +[11484] Forked 26322 +(26322) found +[11483] Forked 26323 +(26323) found +[11482] Forked 26324 +(26324) found +[11481] Forked 26325 +(26325) found +[11480] Forked 26326 +(26326) found +[11479] Forked 26327 +(26327) found +[11478] Forked 26328 +(26328) found +[11477] Forked 26329 +(26329) found +[11476] Forked 26330 +(26330) found +[11475] Forked 26331 +(26331) found +[11474] Forked 26332 +(26332) found +[11473] Forked 26333 +(26333) found +[11472] Forked 26334 +(26334) found +[11471] Forked 26335 +(26335) found +[11470] Forked 26336 +(26336) found +[11469] Forked 26337 +(26337) found +[11468] Forked 26338 +(26338) found +[11467] Forked 26339 +(26339) found +[11466] Forked 26340 +(26340) found +[11465] Forked 26341 +(26341) found +[11464] Forked 26342 +(26342) found +[11463] Forked 26343 +(26343) found +[11462] Forked 26344 +(26344) found +[11461] Forked 26345 +(26345) found +[11460] Forked 26346 +(26346) found +[11459] Forked 26347 +(26347) found +[11458] Forked 26348 +(26348) found +[11457] Forked 26349 +(26349) found +[11456] Forked 26350 +(26350) found +[11455] Forked 26351 +(26351) found +[11454] Forked 26352 +(26352) found +[11453] Forked 26353 +(26353) found +[11452] Forked 26354 +(26354) found +[11451] Forked 26355 +(26355) found +[11450] Forked 26356 +(26356) found +[11449] Forked 26357 +(26357) found +[11448] Forked 26358 +(26358) found +[11447] Forked 26359 +(26359) found +[11446] Forked 26360 +(26360) found +[11445] Forked 26361 +(26361) found +[11444] Forked 26362 +(26362) found +[11443] Forked 26363 +(26363) found +[11442] Forked 26364 +(26364) found +[11441] Forked 26365 +(26365) found +[11440] Forked 26366 +(26366) found +[11439] Forked 26367 +(26367) found +[11438] Forked 26368 +(26368) found +[11437] Forked 26369 +(26369) found +[11436] Forked 26370 +(26370) found +[11435] Forked 26371 +(26371) found +[11434] Forked 26372 +(26372) found +[11433] Forked 26373 +(26373) found +[11432] Forked 26374 +(26374) found +[11431] Forked 26375 +(26375) found +[11430] Forked 26376 +(26376) found +[11429] Forked 26377 +(26377) found +[11428] Forked 26378 +(26378) found +[11427] Forked 26379 +(26379) found +[11426] Forked 26380 +(26380) found +[11425] Forked 26381 +(26381) found +[11424] Forked 26382 +(26382) found +[11423] Forked 26383 +(26383) found +[11422] Forked 26384 +(26384) found +[11421] Forked 26385 +(26385) found +[11420] Forked 26386 +(26386) found +[11419] Forked 26387 +(26387) found +[11418] Forked 26388 +(26388) found +[11417] Forked 26389 +(26389) found +[11416] Forked 26390 +(26390) found +[11415] Forked 26391 +(26391) found +[11414] Forked 26392 +(26392) found +[11413] Forked 26393 +(26393) found +[11412] Forked 26394 +(26394) found +[11411] Forked 26395 +(26395) found +[11410] Forked 26396 +(26396) found +[11409] Forked 26397 +(26397) found +[11408] Forked 26398 +(26398) found +[11407] Forked 26399 +(26399) found +[11406] Forked 26400 +(26400) found +[11405] Forked 26401 +(26401) found +[11404] Forked 26402 +(26402) found +[11403] Forked 26403 +(26403) found +[11402] Forked 26404 +(26404) found +[11401] Forked 26405 +(26405) found +[11400] Forked 26406 +(26406) found +[11399] Forked 26407 +(26407) found +[11398] Forked 26408 +(26408) found +[11397] Forked 26409 +(26409) found +[11396] Forked 26410 +(26410) found +[11395] Forked 26411 +(26411) found +[11394] Forked 26412 +(26412) found +[11393] Forked 26413 +(26413) found +[11392] Forked 26414 +(26414) found +[11391] Forked 26415 +(26415) found +[11390] Forked 26416 +(26416) found +[11389] Forked 26417 +(26417) found +[11388] Forked 26418 +(26418) found +[11387] Forked 26419 +(26419) found +[11386] Forked 26420 +(26420) found +[11385] Forked 26421 +(26421) found +[11384] Forked 26422 +(26422) found +[11383] Forked 26423 +(26423) found +[11382] Forked 26424 +(26424) found +[11381] Forked 26425 +(26425) found +[11380] Forked 26426 +(26426) found +[11379] Forked 26427 +(26427) found +[11378] Forked 26428 +(26428) found +[11377] Forked 26429 +(26429) found +[11376] Forked 26430 +(26430) found +[11375] Forked 26431 +(26431) found +[11374] Forked 26432 +(26432) found +[11373] Forked 26433 +(26433) found +[11372] Forked 26434 +(26434) found +[11371] Forked 26435 +(26435) found +[11370] Forked 26436 +(26436) found +[11369] Forked 26437 +(26437) found +[11368] Forked 26438 +(26438) found +[11367] Forked 26439 +(26439) found +[11366] Forked 26440 +(26440) found +[11365] Forked 26441 +(26441) found +[11364] Forked 26442 +(26442) found +[11363] Forked 26443 +(26443) found +[11362] Forked 26444 +(26444) found +[11361] Forked 26445 +(26445) found +[11360] Forked 26446 +(26446) found +[11359] Forked 26447 +(26447) found +[11358] Forked 26448 +(26448) found +[11357] Forked 26449 +(26449) found +[11356] Forked 26450 +(26450) found +[11355] Forked 26451 +(26451) found +[11354] Forked 26452 +(26452) found +[11353] Forked 26453 +(26453) found +[11352] Forked 26454 +(26454) found +[11351] Forked 26455 +(26455) found +[11350] Forked 26456 +(26456) found +[11349] Forked 26457 +(26457) found +[11348] Forked 26458 +(26458) found +[11347] Forked 26459 +(26459) found +[11346] Forked 26460 +(26460) found +[11345] Forked 26461 +(26461) found +[11344] Forked 26462 +(26462) found +[11343] Forked 26463 +(26463) found +[11342] Forked 26464 +(26464) found +[11341] Forked 26465 +(26465) found +[11340] Forked 26466 +(26466) found +[11339] Forked 26467 +(26467) found +[11338] Forked 26468 +(26468) found +[11337] Forked 26469 +(26469) found +[11336] Forked 26470 +(26470) found +[11335] Forked 26471 +(26471) found +[11334] Forked 26472 +(26472) found +[11333] Forked 26473 +(26473) found +[11332] Forked 26474 +(26474) found +[11331] Forked 26475 +(26475) found +[11330] Forked 26476 +(26476) found +[11329] Forked 26477 +(26477) found +[11328] Forked 26478 +(26478) found +[11327] Forked 26479 +(26479) found +[11326] Forked 26480 +(26480) found +[11325] Forked 26481 +(26481) found +[11324] Forked 26482 +(26482) found +[11323] Forked 26483 +(26483) found +[11322] Forked 26484 +(26484) found +[11321] Forked 26485 +(26485) found +[11320] Forked 26486 +(26486) found +[11319] Forked 26487 +(26487) found +[11318] Forked 26488 +(26488) found +[11317] Forked 26489 +(26489) found +[11316] Forked 26490 +(26490) found +[11315] Forked 26491 +(26491) found +[11314] Forked 26492 +(26492) found +[11313] Forked 26493 +[11312] Forked 26494 +(26493) found +(26494) found +[11311] Forked 26495 +[11310] Forked 26496 +(26495) found +(26496) found +[11309] Forked 26497 +[11308] Forked 26498 +(26497) found +(26498) found +[11307] Forked 26499 +[11306] Forked 26500 +(26499) found +(26500) found +[11305] Forked 26501 +[11304] Forked 26502 +(26501) found +(26502) found +[11303] Forked 26503 +[11302] Forked 26504 +(26503) found +(26504) found +[11301] Forked 26505 +[11300] Forked 26506 +(26505) found +(26506) found +[11299] Forked 26507 +[11298] Forked 26508 +(26507) found +(26508) found +[11297] Forked 26509 +[11296] Forked 26510 +(26509) found +(26510) found +[11295] Forked 26511 +[11294] Forked 26512 +(26511) found +(26512) found +[11293] Forked 26513 +[11292] Forked 26514 +(26513) found +(26514) found +[11291] Forked 26515 +[11290] Forked 26516 +(26515) found +(26516) found +[11289] Forked 26517 +[11288] Forked 26518 +(26517) found +(26518) found +[11287] Forked 26519 +[11286] Forked 26520 +(26519) found +(26520) found +[11285] Forked 26521 +[11284] Forked 26522 +(26521) found +(26522) found +[11283] Forked 26523 +[11282] Forked 26524 +(26523) found +(26524) found +[11281] Forked 26525 +[11280] Forked 26526 +(26525) found +(26526) found +[11279] Forked 26527 +[11278] Forked 26528 +(26527) found +(26528) found +[11277] Forked 26529 +[11276] Forked 26530 +(26529) found +(26530) found +[11275] Forked 26531 +[11274] Forked 26532 +(26531) found +(26532) found +[11273] Forked 26533 +[11272] Forked 26534 +(26533) found +(26534) found +[11271] Forked 26535 +[11270] Forked 26536 +(26535) found +(26536) found +[11269] Forked 26537 +[11268] Forked 26538 +(26537) found +(26538) found +[11267] Forked 26539 +(26539) found +[11266] Forked 26540 +(26540) found +[11265] Forked 26541 +(26541) found +[11264] Forked 26542 +(26542) found +[11263] Forked 26543 +(26543) found +[11262] Forked 26544 +(26544) found +[11261] Forked 26545 +(26545) found +[11260] Forked 26546 +(26546) found +[11259] Forked 26547 +(26547) found +[11258] Forked 26548 +(26548) found +[11257] Forked 26549 +(26549) found +[11256] Forked 26550 +(26550) found +[11255] Forked 26551 +(26551) found +[11254] Forked 26552 +(26552) found +[11253] Forked 26553 +(26553) found +[11252] Forked 26554 +(26554) found +[11251] Forked 26555 +(26555) found +[11250] Forked 26556 +(26556) found +[11249] Forked 26557 +(26557) found +[11248] Forked 26558 +(26558) found +[11247] Forked 26559 +(26559) found +[11246] Forked 26560 +(26560) found +[11245] Forked 26561 +(26561) found +[11244] Forked 26562 +(26562) found +[11243] Forked 26563 +(26563) found +[11242] Forked 26564 +(26564) found +[11241] Forked 26565 +(26565) found +[11240] Forked 26566 +(26566) found +[11239] Forked 26567 +(26567) found +[11238] Forked 26568 +(26568) found +[11237] Forked 26569 +(26569) found +[11236] Forked 26570 +(26570) found +[11235] Forked 26571 +(26571) found +[11234] Forked 26572 +(26572) found +[11233] Forked 26573 +(26573) found +[11232] Forked 26574 +(26574) found +[11231] Forked 26575 +[11230] Forked 26576 +(26575) found +(26576) found +[11229] Forked 26577 +[11228] Forked 26578 +(26577) found +(26578) found +[11227] Forked 26579 +[11226] Forked 26580 +(26579) found +(26580) found +[11225] Forked 26581 +[11224] Forked 26582 +(26581) found +(26582) found +[11223] Forked 26583 +[11222] Forked 26584 +(26583) found +(26584) found +[11221] Forked 26585 +[11220] Forked 26586 +(26585) found +(26586) found +[11219] Forked 26587 +[11218] Forked 26588 +(26587) found +(26588) found +[11217] Forked 26589 +[11216] Forked 26590 +(26589) found +(26590) found +[11215] Forked 26591 +[11214] Forked 26592 +(26591) found +(26592) found +[11213] Forked 26593 +[11212] Forked 26594 +(26593) found +(26594) found +[11211] Forked 26595 +[11210] Forked 26596 +(26595) found +(26596) found +[11209] Forked 26597 +[11208] Forked 26598 +(26597) found +(26598) found +[11207] Forked 26599 +[11206] Forked 26600 +(26599) found +(26600) found +[11205] Forked 26601 +[11204] Forked 26602 +(26601) found +(26602) found +[11203] Forked 26603 +[11202] Forked 26604 +(26603) found +(26604) found +[11201] Forked 26605 +[11200] Forked 26606 +(26605) found +(26606) found +[11199] Forked 26607 +[11198] Forked 26608 +(26607) found +(26608) found +[11197] Forked 26609 +[11196] Forked 26610 +(26609) found +(26610) found +[11195] Forked 26611 +[11194] Forked 26612 +(26611) found +(26612) found +[11193] Forked 26613 +[11192] Forked 26614 +(26613) found +(26614) found +[11191] Forked 26615 +[11190] Forked 26616 +(26615) found +(26616) found +[11189] Forked 26617 +[11188] Forked 26618 +(26617) found +(26618) found +[11187] Forked 26619 +[11186] Forked 26620 +(26619) found +(26620) found +[11185] Forked 26621 +(26621) found +[11184] Forked 26622 +(26622) found +[11183] Forked 26623 +(26623) found +[11182] Forked 26624 +(26624) found +[11181] Forked 26625 +(26625) found +[11180] Forked 26626 +(26626) found +[11179] Forked 26627 +(26627) found +[11178] Forked 26628 +(26628) found +[11177] Forked 26629 +(26629) found +[11176] Forked 26630 +(26630) found +[11175] Forked 26631 +(26631) found +[11174] Forked 26632 +(26632) found +[11173] Forked 26633 +(26633) found +[11172] Forked 26634 +(26634) found +[11171] Forked 26635 +(26635) found +[11170] Forked 26636 +(26636) found +[11169] Forked 26637 +(26637) found +[11168] Forked 26638 +(26638) found +[11167] Forked 26639 +(26639) found +[11166] Forked 26640 +(26640) found +[11165] Forked 26641 +(26641) found +[11164] Forked 26642 +(26642) found +[11163] Forked 26643 +(26643) found +[11162] Forked 26644 +(26644) found +[11161] Forked 26645 +(26645) found +[11160] Forked 26646 +(26646) found +[11159] Forked 26647 +(26647) found +[11158] Forked 26648 +(26648) found +[11157] Forked 26649 +(26649) found +[11156] Forked 26650 +(26650) found +[11155] Forked 26651 +(26651) found +[11154] Forked 26652 +(26652) found +[11153] Forked 26653 +(26653) found +[11152] Forked 26654 +(26654) found +[11151] Forked 26655 +[11150] Forked 26656 +(26655) found +(26656) found +[11149] Forked 26657 +[11148] Forked 26658 +(26657) found +(26658) found +[11147] Forked 26659 +[11146] Forked 26660 +(26659) found +(26660) found +[11145] Forked 26661 +[11144] Forked 26662 +(26661) found +(26662) found +[11143] Forked 26663 +[11142] Forked 26664 +(26663) found +(26664) found +[11141] Forked 26665 +[11140] Forked 26666 +(26665) found +(26666) found +[11139] Forked 26667 +[11138] Forked 26668 +(26667) found +(26668) found +[11137] Forked 26669 +[11136] Forked 26670 +(26669) found +(26670) found +[11135] Forked 26671 +[11134] Forked 26672 +(26671) found +(26672) found +[11133] Forked 26673 +[11132] Forked 26674 +(26674) found +(26673) found +[11131] Forked 26675 +(26675) found +[11130] Forked 26676 +(26676) found +[11129] Forked 26677 +(26677) found +[11128] Forked 26678 +(26678) found +[11127] Forked 26679 +(26679) found +[11126] Forked 26680 +(26680) found +[11125] Forked 26681 +(26681) found +[11124] Forked 26682 +(26682) found +[11123] Forked 26683 +(26683) found +[11122] Forked 26684 +(26684) found +[11121] Forked 26685 +(26685) found +[11120] Forked 26686 +(26686) found +[11119] Forked 26687 +(26687) found +[11118] Forked 26688 +(26688) found +[11117] Forked 26689 +(26689) found +[11116] Forked 26690 +(26690) found +[11115] Forked 26691 +(26691) found +[11114] Forked 26692 +(26692) found +[11113] Forked 26693 +(26693) found +[11112] Forked 26694 +(26694) found +[11111] Forked 26695 +(26695) found +[11110] Forked 26696 +(26696) found +[11109] Forked 26697 +(26697) found +[11108] Forked 26698 +(26698) found +[11107] Forked 26699 +(26699) found +[11106] Forked 26700 +(26700) found +[11105] Forked 26701 +(26701) found +[11104] Forked 26702 +(26702) found +[11103] Forked 26703 +(26703) found +[11102] Forked 26704 +(26704) found +[11101] Forked 26705 +(26705) found +[11100] Forked 26706 +(26706) found +[11099] Forked 26707 +(26707) found +[11098] Forked 26708 +(26708) found +[11097] Forked 26709 +(26709) found +[11096] Forked 26710 +(26710) found +[11095] Forked 26711 +(26711) found +[11094] Forked 26712 +(26712) found +[11093] Forked 26713 +(26713) found +[11092] Forked 26714 +(26714) found +[11091] Forked 26715 +(26715) found +[11090] Forked 26716 +(26716) found +[11089] Forked 26717 +(26717) found +[11088] Forked 26718 +(26718) found +[11087] Forked 26719 +(26719) found +[11086] Forked 26720 +(26720) found +[11085] Forked 26721 +(26721) found +[11084] Forked 26722 +(26722) found +[11083] Forked 26723 +(26723) found +[11082] Forked 26724 +(26724) found +[11081] Forked 26725 +[11080] Forked 26726 +(26725) found +(26726) found +[11079] Forked 26727 +[11078] Forked 26728 +(26727) found +(26728) found +[11077] Forked 26729 +[11076] Forked 26730 +(26729) found +(26730) found +[11075] Forked 26731 +[11074] Forked 26732 +(26731) found +(26732) found +[11073] Forked 26733 +[11072] Forked 26734 +(26733) found +(26734) found +[11071] Forked 26735 +[11070] Forked 26736 +(26735) found +(26736) found +[11069] Forked 26737 +[11068] Forked 26738 +(26737) found +(26738) found +[11067] Forked 26739 +[11066] Forked 26740 +(26739) found +(26740) found +[11065] Forked 26741 +[11064] Forked 26742 +(26741) found +(26742) found +[11063] Forked 26743 +[11062] Forked 26744 +(26743) found +(26744) found +[11061] Forked 26745 +[11060] Forked 26746 +(26745) found +(26746) found +[11059] Forked 26747 +[11058] Forked 26748 +(26747) found +(26748) found +[11057] Forked 26749 +[11056] Forked 26750 +(26749) found +(26750) found +[11055] Forked 26751 +[11054] Forked 26752 +(26751) found +(26752) found +[11053] Forked 26753 +[11052] Forked 26754 +(26753) found +(26754) found +[11051] Forked 26755 +[11050] Forked 26756 +(26755) found +(26756) found +[11049] Forked 26757 +[11048] Forked 26758 +(26757) found +(26758) found +[11047] Forked 26759 +[11046] Forked 26760 +(26759) found +(26760) found +[11045] Forked 26761 +[11044] Forked 26762 +(26761) found +(26762) found +[11043] Forked 26763 +[11042] Forked 26764 +(26763) found +(26764) found +[11041] Forked 26765 +[11040] Forked 26766 +(26765) found +(26766) found +[11039] Forked 26767 +[11038] Forked 26768 +(26767) found +(26768) found +[11037] Forked 26769 +[11036] Forked 26770 +(26769) found +(26770) found +[11035] Forked 26771 +[11034] Forked 26772 +(26771) found +(26772) found +[11033] Forked 26773 +[11032] Forked 26774 +(26773) found +(26774) found +[11031] Forked 26775 +[11030] Forked 26776 +(26775) found +(26776) found +[11029] Forked 26777 +[11028] Forked 26778 +(26777) found +(26778) found +[11027] Forked 26779 +[11026] Forked 26780 +(26779) found +(26780) found +[11025] Forked 26781 +(26781) found +[11024] Forked 26782 +[11023] Forked 26783 +(26782) found +(26783) found +[11022] Forked 26784 +[11021] Forked 26785 +(26784) found +(26785) found +[11020] Forked 26786 +[11019] Forked 26787 +(26786) found +(26787) found +[11018] Forked 26788 +[11017] Forked 26789 +(26788) found +(26789) found +[11016] Forked 26790 +[11015] Forked 26791 +(26790) found +(26791) found +[11014] Forked 26792 +[11013] Forked 26793 +(26792) found +(26793) found +[11012] Forked 26794 +[11011] Forked 26795 +(26794) found +(26795) found +[11010] Forked 26796 +[11009] Forked 26797 +(26796) found +(26797) found +[11008] Forked 26798 +[11007] Forked 26799 +(26798) found +(26799) found +[11006] Forked 26800 +[11005] Forked 26801 +(26800) found +(26801) found +[11004] Forked 26802 +[11003] Forked 26803 +(26802) found +(26803) found +[11002] Forked 26804 +[11001] Forked 26805 +(26804) found +(26805) found +[11000] Forked 26806 +[10999] Forked 26807 +(26806) found +(26807) found +[10998] Forked 26808 +[10997] Forked 26809 +(26808) found +(26809) found +[10996] Forked 26810 +[10995] Forked 26811 +(26810) found +(26811) found +[10994] Forked 26812 +(26812) found +[10993] Forked 26813 +(26813) found +[10992] Forked 26814 +(26814) found +[10991] Forked 26815 +(26815) found +[10990] Forked 26816 +(26816) found +[10989] Forked 26817 +(26817) found +[10988] Forked 26818 +(26818) found +[10987] Forked 26819 +(26819) found +[10986] Forked 26820 +(26820) found +[10985] Forked 26822 +(26822) found +[10984] Forked 26823 +(26823) found +[10983] Forked 26824 +(26824) found +[10982] Forked 26825 +(26825) found +[10981] Forked 26826 +(26826) found +[10980] Forked 26827 +(26827) found +[10979] Forked 26828 +(26828) found +[10978] Forked 26829 +(26829) found +[10977] Forked 26830 +(26830) found +[10976] Forked 26831 +(26831) found +[10975] Forked 26832 +(26832) found +[10974] Forked 26833 +(26833) found +[10973] Forked 26834 +(26834) found +[10972] Forked 26835 +(26835) found +[10971] Forked 26836 +(26836) found +[10970] Forked 26837 +(26837) found +[10969] Forked 26838 +(26838) found +[10968] Forked 26839 +(26839) found +[10967] Forked 26840 +(26840) found +[10966] Forked 26841 +(26841) found +[10965] Forked 26842 +(26842) found +[10964] Forked 26843 +(26843) found +[10963] Forked 26844 +(26844) found +[10962] Forked 26845 +(26845) found +[10961] Forked 26846 +(26846) found +[10960] Forked 26847 +(26847) found +[10959] Forked 26848 +(26848) found +[10958] Forked 26849 +(26849) found +[10957] Forked 26850 +(26850) found +[10956] Forked 26851 +(26851) found +[10955] Forked 26852 +(26852) found +[10954] Forked 26853 +(26853) found +[10953] Forked 26854 +(26854) found +[10952] Forked 26855 +(26855) found +[10951] Forked 26856 +(26856) found +[10950] Forked 26857 +(26857) found +[10949] Forked 26858 +(26858) found +[10948] Forked 26859 +(26859) found +[10947] Forked 26860 +(26860) found +[10946] Forked 26861 +(26861) found +[10945] Forked 26862 +(26862) found +[10944] Forked 26863 +(26863) found +[10943] Forked 26864 +(26864) found +[10942] Forked 26865 +(26865) found +[10941] Forked 26866 +(26866) found +[10940] Forked 26867 +(26867) found +[10939] Forked 26868 +(26868) found +[10938] Forked 26869 +(26869) found +[10937] Forked 26870 +(26870) found +[10936] Forked 26871 +(26871) found +[10935] Forked 26872 +(26872) found +[10934] Forked 26873 +(26873) found +[10933] Forked 26874 +(26874) found +[10932] Forked 26875 +(26875) found +[10931] Forked 26876 +(26876) found +[10930] Forked 26877 +(26877) found +[10929] Forked 26878 +(26878) found +[10928] Forked 26879 +(26879) found +[10927] Forked 26880 +(26880) found +[10926] Forked 26881 +(26881) found +[10925] Forked 26882 +(26882) found +[10924] Forked 26883 +(26883) found +[10923] Forked 26884 +(26884) found +[10922] Forked 26885 +(26885) found +[10921] Forked 26886 +(26886) found +[10920] Forked 26887 +(26887) found +[10919] Forked 26888 +(26888) found +[10918] Forked 26889 +[10917] Forked 26890 +(26889) found +(26890) found +[10916] Forked 26891 +[10915] Forked 26892 +(26891) found +(26892) found +[10914] Forked 26893 +[10913] Forked 26894 +(26893) found +(26894) found +[10912] Forked 26895 +[10911] Forked 26896 +(26895) found +(26896) found +[10910] Forked 26897 +[10909] Forked 26898 +(26897) found +(26898) found +[10908] Forked 26899 +[10907] Forked 26900 +(26899) found +(26900) found +[10906] Forked 26901 +[10905] Forked 26902 +(26901) found +(26902) found +[10904] Forked 26903 +[10903] Forked 26904 +(26903) found +(26904) found +[10902] Forked 26905 +[10901] Forked 26906 +(26905) found +(26906) found +[10900] Forked 26907 +[10899] Forked 26908 +(26907) found +(26908) found +[10898] Forked 26909 +[10897] Forked 26910 +(26909) found +(26910) found +[10896] Forked 26911 +[10895] Forked 26912 +(26911) found +(26912) found +[10894] Forked 26913 +[10893] Forked 26914 +(26913) found +(26914) found +[10892] Forked 26915 +[10891] Forked 26916 +(26915) found +(26916) found +[10890] Forked 26917 +[10889] Forked 26918 +(26917) found +(26918) found +[10888] Forked 26919 +[10887] Forked 26920 +(26919) found +(26920) found +[10886] Forked 26921 +[10885] Forked 26922 +(26921) found +(26922) found +[10884] Forked 26923 +[10883] Forked 26924 +(26923) found +(26924) found +[10882] Forked 26925 +[10881] Forked 26926 +(26925) found +(26926) found +[10880] Forked 26927 +[10879] Forked 26928 +(26927) found +(26928) found +[10878] Forked 26929 +[10877] Forked 26930 +(26929) found +(26930) found +[10876] Forked 26931 +[10875] Forked 26932 +(26931) found +(26932) found +[10874] Forked 26933 +[10873] Forked 26934 +(26933) found +(26934) found +[10872] Forked 26935 +(26935) found +[10871] Forked 26936 +(26936) found +[10870] Forked 26937 +(26937) found +[10869] Forked 26938 +(26938) found +[10868] Forked 26939 +(26939) found +[10867] Forked 26940 +(26940) found +[10866] Forked 26941 +(26941) found +[10865] Forked 26942 +(26942) found +[10864] Forked 26943 +(26943) found +[10863] Forked 26944 +(26944) found +[10862] Forked 26945 +(26945) found +[10861] Forked 26946 +(26946) found +[10860] Forked 26947 +(26947) found +[10859] Forked 26948 +(26948) found +[10858] Forked 26949 +(26949) found +[10857] Forked 26950 +(26950) found +[10856] Forked 26951 +(26951) found +[10855] Forked 26952 +(26952) found +[10854] Forked 26953 +(26953) found +[10853] Forked 26954 +(26954) found +[10852] Forked 26955 +(26955) found +[10851] Forked 26956 +(26956) found +[10850] Forked 26957 +(26957) found +[10849] Forked 26958 +(26958) found +[10848] Forked 26959 +(26959) found +[10847] Forked 26960 +(26960) found +[10846] Forked 26961 +(26961) found +[10845] Forked 26962 +(26962) found +[10844] Forked 26963 +(26963) found +[10843] Forked 26964 +(26964) found +[10842] Forked 26965 +(26965) found +[10841] Forked 26966 +(26966) found +[10840] Forked 26967 +(26967) found +[10839] Forked 26968 +(26968) found +[10838] Forked 26969 +(26969) found +[10837] Forked 26970 +[10836] Forked 26971 +(26970) found +(26971) found +[10835] Forked 26972 +[10834] Forked 26973 +(26972) found +(26973) found +[10833] Forked 26974 +[10832] Forked 26975 +(26974) found +(26975) found +[10831] Forked 26976 +[10830] Forked 26977 +(26976) found +(26977) found +[10829] Forked 26978 +[10828] Forked 26979 +(26978) found +(26979) found +[10827] Forked 26980 +[10826] Forked 26981 +(26980) found +(26981) found +[10825] Forked 26982 +[10824] Forked 26983 +(26982) found +(26983) found +[10823] Forked 26984 +[10822] Forked 26985 +(26984) found +(26985) found +[10821] Forked 26986 +[10820] Forked 26987 +(26986) found +(26987) found +[10819] Forked 26988 +[10818] Forked 26989 +(26988) found +(26989) found +[10817] Forked 26990 +[10816] Forked 26991 +(26990) found +(26991) found +[10815] Forked 26992 +[10814] Forked 26993 +(26992) found +(26993) found +[10813] Forked 26994 +[10812] Forked 26995 +(26994) found +(26995) found +[10811] Forked 26996 +[10810] Forked 26997 +(26996) found +(26997) found +[10809] Forked 26998 +[10808] Forked 26999 +(26998) found +(26999) found +[10807] Forked 27000 +[10806] Forked 27001 +(27000) found +(27001) found +[10805] Forked 27002 +[10804] Forked 27003 +(27002) found +(27003) found +[10803] Forked 27004 +[10802] Forked 27005 +(27004) found +(27005) found +[10801] Forked 27006 +[10800] Forked 27007 +(27006) found +(27007) found +[10799] Forked 27008 +[10798] Forked 27009 +(27008) found +(27009) found +[10797] Forked 27010 +[10796] Forked 27011 +(27010) found +(27011) found +[10795] Forked 27012 +[10794] Forked 27013 +(27012) found +(27013) found +[10793] Forked 27014 +[10792] Forked 27015 +(27014) found +(27015) found +[10791] Forked 27016 +(27016) found +[10790] Forked 27017 +(27017) found +[10789] Forked 27018 +(27018) found +[10788] Forked 27019 +(27019) found +[10787] Forked 27020 +(27020) found +[10786] Forked 27021 +(27021) found +[10785] Forked 27022 +(27022) found +[10784] Forked 27023 +(27023) found +[10783] Forked 27024 +(27024) found +[10782] Forked 27025 +(27025) found +[10781] Forked 27026 +(27026) found +[10780] Forked 27027 +(27027) found +[10779] Forked 27028 +(27028) found +[10778] Forked 27029 +(27029) found +[10777] Forked 27030 +(27030) found +[10776] Forked 27031 +(27031) found +[10775] Forked 27032 +(27032) found +[10774] Forked 27033 +(27033) found +[10773] Forked 27034 +(27034) found +[10772] Forked 27035 +(27035) found +[10771] Forked 27036 +(27036) found +[10770] Forked 27037 +(27037) found +[10769] Forked 27038 +(27038) found +[10768] Forked 27039 +(27039) found +[10767] Forked 27040 +(27040) found +[10766] Forked 27041 +(27041) found +[10765] Forked 27042 +(27042) found +[10764] Forked 27043 +(27043) found +[10763] Forked 27044 +(27044) found +[10762] Forked 27045 +(27045) found +[10761] Forked 27046 +(27046) found +[10760] Forked 27047 +(27047) found +[10759] Forked 27048 +(27048) found +[10758] Forked 27049 +(27049) found +[10757] Forked 27050 +(27050) found +[10756] Forked 27051 +(27051) found +[10755] Forked 27052 +[10754] Forked 27053 +(27052) found +(27053) found +[10753] Forked 27054 +[10752] Forked 27055 +(27054) found +(27055) found +[10751] Forked 27056 +[10750] Forked 27057 +(27056) found +(27057) found +[10749] Forked 27058 +[10748] Forked 27059 +(27058) found +(27059) found +[10747] Forked 27060 +[10746] Forked 27061 +(27060) found +(27061) found +[10745] Forked 27062 +[10744] Forked 27063 +(27062) found +(27063) found +[10743] Forked 27064 +[10742] Forked 27065 +(27064) found +(27065) found +[10741] Forked 27066 +[10740] Forked 27067 +(27066) found +(27067) found +[10739] Forked 27068 +[10738] Forked 27069 +(27068) found +(27069) found +[10737] Forked 27070 +[10736] Forked 27071 +(27070) found +(27071) found +[10735] Forked 27072 +[10734] Forked 27073 +(27072) found +(27073) found +[10733] Forked 27074 +[10732] Forked 27075 +(27074) found +(27075) found +[10731] Forked 27076 +[10730] Forked 27077 +(27076) found +(27077) found +[10729] Forked 27078 +[10728] Forked 27079 +(27078) found +(27079) found +[10727] Forked 27080 +[10726] Forked 27081 +(27080) found +(27081) found +[10725] Forked 27082 +[10724] Forked 27083 +(27082) found +(27083) found +[10723] Forked 27084 +[10722] Forked 27085 +(27084) found +(27085) found +[10721] Forked 27086 +[10720] Forked 27087 +(27086) found +(27087) found +[10719] Forked 27088 +[10718] Forked 27089 +(27088) found +(27089) found +[10717] Forked 27090 +[10716] Forked 27091 +(27090) found +(27091) found +[10715] Forked 27092 +[10714] Forked 27093 +(27092) found +(27093) found +[10713] Forked 27094 +[10712] Forked 27095 +(27094) found +(27095) found +[10711] Forked 27096 +[10710] Forked 27097 +(27096) found +(27097) found +[10709] Forked 27098 +[10708] Forked 27099 +(27098) found +(27099) found +[10707] Forked 27100 +[10706] Forked 27101 +(27100) found +(27101) found +[10705] Forked 27102 +[10704] Forked 27103 +(27102) found +(27103) found +[10703] Forked 27104 +[10702] Forked 27105 +(27104) found +(27105) found +[10701] Forked 27106 +[10700] Forked 27107 +(27106) found +(27107) found +[10699] Forked 27108 +[10698] Forked 27109 +(27108) found +(27109) found +[10697] Forked 27110 +[10696] Forked 27111 +(27110) found +(27111) found +[10695] Forked 27112 +[10694] Forked 27113 +(27112) found +(27113) found +[10693] Forked 27114 +[10692] Forked 27115 +(27114) found +(27115) found +[10691] Forked 27116 +[10690] Forked 27117 +(27116) found +(27117) found +[10689] Forked 27118 +[10688] Forked 27119 +(27118) found +(27119) found +[10687] Forked 27120 +[10686] Forked 27121 +(27120) found +(27121) found +[10685] Forked 27122 +[10684] Forked 27123 +(27122) found +(27123) found +[10683] Forked 27124 +[10682] Forked 27125 +(27124) found +(27125) found +[10681] Forked 27126 +[10680] Forked 27127 +(27126) found +(27127) found +[10679] Forked 27128 +[10678] Forked 27129 +(27128) found +(27129) found +[10677] Forked 27130 +[10676] Forked 27131 +(27130) found +(27131) found +[10675] Forked 27132 +[10674] Forked 27133 +(27132) found +(27133) found +[10673] Forked 27134 +[10672] Forked 27135 +(27134) found +(27135) found +[10671] Forked 27136 +[10670] Forked 27138 +(27136) found +(27138) found +[10669] Forked 27139 +(27139) found +[10668] Forked 27140 +(27140) found +[10667] Forked 27141 +(27141) found +[10666] Forked 27142 +(27142) found +[10665] Forked 27143 +(27143) found +[10664] Forked 27144 +(27144) found +[10663] Forked 27145 +(27145) found +[10662] Forked 27146 +(27146) found +[10661] Forked 27147 +(27147) found +[10660] Forked 27148 +(27148) found +[10659] Forked 27149 +(27149) found +[10658] Forked 27150 +(27150) found +[10657] Forked 27151 +(27151) found +[10656] Forked 27152 +(27152) found +[10655] Forked 27153 +(27153) found +[10654] Forked 27154 +(27154) found +[10653] Forked 27155 +(27155) found +[10652] Forked 27156 +(27156) found +[10651] Forked 27157 +(27157) found +[10650] Forked 27158 +(27158) found +[10649] Forked 27159 +(27159) found +[10648] Forked 27160 +(27160) found +[10647] Forked 27161 +(27161) found +[10646] Forked 27162 +(27162) found +[10645] Forked 27163 +(27163) found +[10644] Forked 27164 +(27164) found +[10643] Forked 27165 +(27165) found +[10642] Forked 27166 +(27166) found +[10641] Forked 27167 +(27167) found +[10640] Forked 27168 +(27168) found +[10639] Forked 27169 +(27169) found +[10638] Forked 27170 +(27170) found +[10637] Forked 27171 +(27171) found +[10636] Forked 27172 +(27172) found +[10635] Forked 27173 +(27173) found +[10634] Forked 27174 +(27174) found +[10633] Forked 27175 +(27175) found +[10632] Forked 27176 +(27176) found +[10631] Forked 27177 +(27177) found +[10630] Forked 27178 +(27178) found +[10629] Forked 27179 +(27179) found +[10628] Forked 27180 +(27180) found +[10627] Forked 27181 +(27181) found +[10626] Forked 27182 +(27182) found +[10625] Forked 27183 +(27183) found +[10624] Forked 27184 +(27184) found +[10623] Forked 27185 +(27185) found +[10622] Forked 27186 +(27186) found +[10621] Forked 27187 +(27187) found +[10620] Forked 27188 +(27188) found +[10619] Forked 27189 +(27189) found +[10618] Forked 27190 +(27190) found +[10617] Forked 27191 +(27191) found +[10616] Forked 27192 +(27192) found +[10615] Forked 27193 +(27193) found +[10614] Forked 27194 +(27194) found +[10613] Forked 27195 +(27195) found +[10612] Forked 27196 +(27196) found +[10611] Forked 27197 +(27197) found +[10610] Forked 27198 +(27198) found +[10609] Forked 27199 +(27199) found +[10608] Forked 27200 +(27200) found +[10607] Forked 27201 +(27201) found +[10606] Forked 27202 +(27202) found +[10605] Forked 27203 +(27203) found +[10604] Forked 27204 +(27204) found +[10603] Forked 27205 +(27205) found +[10602] Forked 27206 +(27206) found +[10601] Forked 27207 +(27207) found +[10600] Forked 27208 +(27208) found +[10599] Forked 27209 +(27209) found +[10598] Forked 27210 +(27210) found +[10597] Forked 27211 +(27211) found +[10596] Forked 27212 +(27212) found +[10595] Forked 27213 +(27213) found +[10594] Forked 27214 +(27214) found +[10593] Forked 27215 +(27215) found +[10592] Forked 27216 +(27216) found +[10591] Forked 27217 +(27217) found +[10590] Forked 27218 +(27218) found +[10589] Forked 27219 +(27219) found +[10588] Forked 27220 +(27220) found +[10587] Forked 27221 +(27221) found +[10586] Forked 27222 +(27222) found +[10585] Forked 27223 +(27223) found +[10584] Forked 27224 +(27224) found +[10583] Forked 27225 +(27225) found +[10582] Forked 27226 +(27226) found +[10581] Forked 27227 +(27227) found +[10580] Forked 27228 +(27228) found +[10579] Forked 27229 +(27229) found +[10578] Forked 27230 +(27230) found +[10577] Forked 27231 +(27231) found +[10576] Forked 27232 +(27232) found +[10575] Forked 27233 +(27233) found +[10574] Forked 27234 +(27234) found +[10573] Forked 27235 +(27235) found +[10572] Forked 27236 +(27236) found +[10571] Forked 27237 +(27237) found +[10570] Forked 27238 +(27238) found +[10569] Forked 27239 +(27239) found +[10568] Forked 27240 +(27240) found +[10567] Forked 27241 +(27241) found +[10566] Forked 27242 +(27242) found +[10565] Forked 27243 +(27243) found +[10564] Forked 27244 +(27244) found +[10563] Forked 27245 +(27245) found +[10562] Forked 27246 +(27246) found +[10561] Forked 27247 +(27247) found +[10560] Forked 27248 +(27248) found +[10559] Forked 27249 +(27249) found +[10558] Forked 27250 +[10557] Forked 27251 +(27250) found +(27251) found +[10556] Forked 27252 +[10555] Forked 27253 +(27252) found +(27253) found +[10554] Forked 27254 +[10553] Forked 27255 +(27254) found +(27255) found +[10552] Forked 27256 +[10551] Forked 27257 +(27256) found +(27257) found +[10550] Forked 27258 +[10549] Forked 27259 +(27258) found +(27259) found +[10548] Forked 27260 +[10547] Forked 27261 +(27260) found +(27261) found +[10546] Forked 27262 +[10545] Forked 27263 +(27262) found +(27263) found +[10544] Forked 27264 +[10543] Forked 27265 +(27264) found +(27265) found +[10542] Forked 27266 +[10541] Forked 27267 +(27266) found +(27267) found +[10540] Forked 27268 +[10539] Forked 27269 +(27268) found +(27269) found +[10538] Forked 27270 +[10537] Forked 27271 +(27270) found +(27271) found +[10536] Forked 27272 +[10535] Forked 27273 +(27272) found +(27273) found +[10534] Forked 27274 +[10533] Forked 27275 +(27274) found +(27275) found +[10532] Forked 27276 +[10531] Forked 27277 +(27276) found +(27277) found +[10530] Forked 27278 +[10529] Forked 27279 +(27278) found +(27279) found +[10528] Forked 27280 +[10527] Forked 27281 +(27280) found +(27281) found +[10526] Forked 27282 +[10525] Forked 27283 +(27282) found +(27283) found +[10524] Forked 27284 +[10523] Forked 27285 +(27284) found +(27285) found +[10522] Forked 27286 +[10521] Forked 27287 +(27286) found +(27287) found +[10520] Forked 27288 +[10519] Forked 27289 +(27288) found +(27289) found +[10518] Forked 27290 +[10517] Forked 27291 +(27290) found +(27291) found +[10516] Forked 27292 +[10515] Forked 27293 +(27292) found +(27293) found +[10514] Forked 27294 +(27294) found +[10513] Forked 27295 +(27295) found +[10512] Forked 27296 +(27296) found +[10511] Forked 27297 +(27297) found +[10510] Forked 27298 +(27298) found +[10509] Forked 27299 +(27299) found +[10508] Forked 27300 +(27300) found +[10507] Forked 27301 +(27301) found +[10506] Forked 27302 +(27302) found +[10505] Forked 27303 +(27303) found +[10504] Forked 27304 +(27304) found +[10503] Forked 27305 +(27305) found +[10502] Forked 27306 +(27306) found +[10501] Forked 27307 +(27307) found +[10500] Forked 27308 +(27308) found +[10499] Forked 27309 +(27309) found +[10498] Forked 27310 +(27310) found +[10497] Forked 27311 +(27311) found +[10496] Forked 27312 +(27312) found +[10495] Forked 27313 +(27313) found +[10494] Forked 27314 +(27314) found +[10493] Forked 27315 +(27315) found +[10492] Forked 27316 +(27316) found +[10491] Forked 27317 +(27317) found +[10490] Forked 27318 +(27318) found +[10489] Forked 27319 +(27319) found +[10488] Forked 27320 +(27320) found +[10487] Forked 27321 +(27321) found +[10486] Forked 27322 +(27322) found +[10485] Forked 27323 +(27323) found +[10484] Forked 27324 +(27324) found +[10483] Forked 27325 +(27325) found +[10482] Forked 27326 +(27326) found +[10481] Forked 27327 +(27327) found +[10480] Forked 27328 +(27328) found +[10479] Forked 27329 +(27329) found +[10478] Forked 27330 +(27330) found +[10477] Forked 27331 +[10476] Forked 27332 +(27331) found +(27332) found +[10475] Forked 27333 +[10474] Forked 27334 +(27333) found +(27334) found +[10473] Forked 27335 +[10472] Forked 27336 +(27335) found +(27336) found +[10471] Forked 27337 +[10470] Forked 27338 +(27337) found +(27338) found +[10469] Forked 27339 +[10468] Forked 27340 +(27339) found +(27340) found +[10467] Forked 27341 +(27341) found +[10466] Forked 27342 +(27342) found +[10465] Forked 27343 +[10464] Forked 27344 +(27343) found +(27344) found +[10463] Forked 27345 +[10462] Forked 27346 +(27345) found +(27346) found +[10461] Forked 27347 +[10460] Forked 27348 +(27347) found +(27348) found +[10459] Forked 27349 +[10458] Forked 27350 +(27349) found +(27350) found +[10457] Forked 27351 +[10456] Forked 27352 +(27351) found +(27352) found +[10455] Forked 27353 +[10454] Forked 27354 +(27353) found +(27354) found +[10453] Forked 27355 +[10452] Forked 27356 +(27355) found +(27356) found +[10451] Forked 27357 +[10450] Forked 27358 +(27357) found +(27358) found +[10449] Forked 27359 +[10448] Forked 27360 +(27359) found +(27360) found +[10447] Forked 27361 +[10446] Forked 27362 +(27361) found +(27362) found +[10445] Forked 27363 +[10444] Forked 27364 +(27363) found +(27364) found +[10443] Forked 27365 +[10442] Forked 27366 +(27365) found +(27366) found +[10441] Forked 27367 +[10440] Forked 27368 +(27367) found +(27368) found +[10439] Forked 27369 +(27369) found +[10438] Forked 27370 +[10437] Forked 27371 +(27370) found +(27371) found +[10436] Forked 27372 +[10435] Forked 27373 +[10434] Forked 27374 +(27372) found +(27373) found +(27374) found +[10433] Forked 27375 +(27375) found +[10432] Forked 27376 +(27376) found +[10431] Forked 27377 +(27377) found +[10430] Forked 27378 +(27378) found +[10429] Forked 27379 +(27379) found +[10428] Forked 27380 +(27380) found +[10427] Forked 27381 +(27381) found +[10426] Forked 27382 +(27382) found +[10425] Forked 27383 +(27383) found +[10424] Forked 27384 +(27384) found +[10423] Forked 27385 +(27385) found +[10422] Forked 27386 +(27386) found +[10421] Forked 27387 +(27387) found +[10420] Forked 27388 +(27388) found +[10419] Forked 27389 +(27389) found +[10418] Forked 27390 +(27390) found +[10417] Forked 27391 +(27391) found +[10416] Forked 27392 +(27392) found +[10415] Forked 27393 +(27393) found +[10414] Forked 27394 +(27394) found +[10413] Forked 27395 +(27395) found +[10412] Forked 27396 +(27396) found +[10411] Forked 27397 +(27397) found +[10410] Forked 27398 +(27398) found +[10409] Forked 27399 +(27399) found +[10408] Forked 27400 +(27400) found +[10407] Forked 27401 +(27401) found +[10406] Forked 27402 +(27402) found +[10405] Forked 27403 +(27403) found +[10404] Forked 27404 +(27404) found +[10403] Forked 27405 +(27405) found +[10402] Forked 27406 +(27406) found +[10401] Forked 27407 +(27407) found +[10400] Forked 27408 +(27408) found +[10399] Forked 27409 +(27409) found +[10398] Forked 27410 +(27410) found +[10397] Forked 27411 +[10396] Forked 27412 +(27411) found +(27412) found +[10395] Forked 27413 +[10394] Forked 27414 +(27413) found +(27414) found +[10393] Forked 27415 +[10392] Forked 27416 +(27415) found +(27416) found +[10391] Forked 27417 +[10390] Forked 27418 +(27417) found +(27418) found +[10389] Forked 27419 +[10388] Forked 27420 +(27419) found +(27420) found +[10387] Forked 27421 +[10386] Forked 27422 +(27421) found +(27422) found +[10385] Forked 27423 +[10384] Forked 27424 +(27423) found +(27424) found +[10383] Forked 27425 +[10382] Forked 27426 +(27425) found +(27426) found +[10381] Forked 27427 +[10380] Forked 27428 +(27427) found +(27428) found +[10379] Forked 27429 +[10378] Forked 27430 +(27429) found +(27430) found +[10377] Forked 27431 +[10376] Forked 27432 +(27431) found +(27432) found +[10375] Forked 27433 +[10374] Forked 27434 +(27433) found +(27434) found +[10373] Forked 27435 +[10372] Forked 27436 +(27435) found +(27436) found +[10371] Forked 27437 +[10370] Forked 27438 +(27437) found +(27438) found +[10369] Forked 27439 +[10368] Forked 27440 +(27439) found +(27440) found +[10367] Forked 27441 +[10366] Forked 27442 +(27441) found +(27442) found +[10365] Forked 27443 +[10364] Forked 27444 +(27443) found +(27444) found +[10363] Forked 27445 +[10362] Forked 27446 +(27445) found +(27446) found +[10361] Forked 27447 +[10360] Forked 27448 +(27447) found +(27448) found +[10359] Forked 27449 +[10358] Forked 27450 +(27449) found +(27450) found +[10357] Forked 27451 +[10356] Forked 27452 +(27451) found +(27452) found +[10355] Forked 27453 +[10354] Forked 27454 +(27453) found +(27454) found +[10353] Forked 27455 +(27455) found +[10352] Forked 27456 +(27456) found +[10351] Forked 27457 +(27457) found +[10350] Forked 27458 +(27458) found +[10349] Forked 27459 +(27459) found +[10348] Forked 27460 +(27460) found +[10347] Forked 27461 +(27461) found +[10346] Forked 27462 +(27462) found +[10345] Forked 27463 +(27463) found +[10344] Forked 27464 +(27464) found +[10343] Forked 27465 +(27465) found +[10342] Forked 27466 +(27466) found +[10341] Forked 27467 +(27467) found +[10340] Forked 27468 +(27468) found +[10339] Forked 27469 +(27469) found +[10338] Forked 27470 +(27470) found +[10337] Forked 27471 +(27471) found +[10336] Forked 27472 +(27472) found +[10335] Forked 27473 +(27473) found +[10334] Forked 27474 +(27474) found +[10333] Forked 27475 +(27475) found +[10332] Forked 27476 +(27476) found +[10331] Forked 27477 +(27477) found +[10330] Forked 27478 +(27478) found +[10329] Forked 27479 +(27479) found +[10328] Forked 27480 +(27480) found +[10327] Forked 27481 +(27481) found +[10326] Forked 27482 +(27482) found +[10325] Forked 27483 +(27483) found +[10324] Forked 27484 +(27484) found +[10323] Forked 27485 +(27485) found +[10322] Forked 27486 +(27486) found +[10321] Forked 27487 +(27487) found +[10320] Forked 27488 +(27488) found +[10319] Forked 27489 +(27489) found +[10318] Forked 27490 +(27490) found +[10317] Forked 27491 +(27491) found +[10316] Forked 27492 +(27492) found +[10315] Forked 27493 +[10314] Forked 27494 +(27493) found +(27494) found +[10313] Forked 27495 +[10312] Forked 27496 +(27495) found +(27496) found +[10311] Forked 27497 +[10310] Forked 27498 +(27497) found +(27498) found +[10309] Forked 27499 +[10308] Forked 27500 +(27499) found +(27500) found +[10307] Forked 27501 +[10306] Forked 27502 +(27501) found +(27502) found +[10305] Forked 27503 +[10304] Forked 27504 +(27503) found +(27504) found +[10303] Forked 27505 +[10302] Forked 27506 +(27505) found +(27506) found +[10301] Forked 27507 +[10300] Forked 27508 +(27507) found +(27508) found +[10299] Forked 27509 +[10298] Forked 27510 +(27509) found +(27510) found +[10297] Forked 27511 +[10296] Forked 27512 +(27511) found +(27512) found +[10295] Forked 27513 +[10294] Forked 27514 +(27513) found +(27514) found +[10293] Forked 27515 +[10292] Forked 27516 +(27515) found +(27516) found +[10291] Forked 27517 +[10290] Forked 27518 +(27517) found +(27518) found +[10289] Forked 27519 +[10288] Forked 27520 +(27519) found +(27520) found +[10287] Forked 27521 +[10286] Forked 27522 +(27521) found +(27522) found +[10285] Forked 27523 +[10284] Forked 27524 +(27523) found +(27524) found +[10283] Forked 27525 +[10282] Forked 27526 +(27525) found +(27526) found +[10281] Forked 27527 +[10280] Forked 27528 +(27527) found +(27528) found +[10279] Forked 27529 +[10278] Forked 27530 +(27529) found +(27530) found +[10277] Forked 27531 +[10276] Forked 27532 +(27531) found +(27532) found +[10275] Forked 27533 +[10274] Forked 27534 +(27533) found +(27534) found +[10273] Forked 27535 +[10272] Forked 27536 +(27535) found +(27536) found +[10271] Forked 27537 +(27537) found +[10270] Forked 27538 +(27538) found +[10269] Forked 27539 +(27539) found +[10268] Forked 27540 +(27540) found +[10267] Forked 27541 +(27541) found +[10266] Forked 27542 +(27542) found +[10265] Forked 27543 +(27543) found +[10264] Forked 27544 +(27544) found +[10263] Forked 27545 +(27545) found +[10262] Forked 27546 +(27546) found +[10261] Forked 27547 +(27547) found +[10260] Forked 27548 +(27548) found +[10259] Forked 27549 +(27549) found +[10258] Forked 27550 +(27550) found +[10257] Forked 27551 +(27551) found +[10256] Forked 27552 +(27552) found +[10255] Forked 27553 +(27553) found +[10254] Forked 27554 +(27554) found +[10253] Forked 27555 +(27555) found +[10252] Forked 27556 +(27556) found +[10251] Forked 27557 +(27557) found +[10250] Forked 27558 +(27558) found +[10249] Forked 27559 +(27559) found +[10248] Forked 27560 +(27560) found +[10247] Forked 27561 +(27561) found +[10246] Forked 27562 +(27562) found +[10245] Forked 27563 +(27563) found +[10244] Forked 27564 +(27564) found +[10243] Forked 27565 +(27565) found +[10242] Forked 27566 +(27566) found +[10241] Forked 27567 +(27567) found +[10240] Forked 27568 +(27568) found +[10239] Forked 27569 +(27569) found +[10238] Forked 27570 +(27570) found +[10237] Forked 27571 +(27571) found +[10236] Forked 27572 +(27572) found +[10235] Forked 27573 +(27573) found +[10234] Forked 27574 +(27574) found +[10233] Forked 27575 +(27575) found +[10232] Forked 27576 +[10231] Forked 27577 +(27576) found +(27577) found +[10230] Forked 27578 +[10229] Forked 27579 +(27578) found +(27579) found +[10228] Forked 27580 +[10227] Forked 27581 +(27580) found +(27581) found +[10226] Forked 27582 +[10225] Forked 27583 +(27582) found +(27583) found +[10224] Forked 27584 +[10223] Forked 27585 +(27584) found +(27585) found +[10222] Forked 27586 +[10221] Forked 27587 +(27586) found +(27587) found +[10220] Forked 27588 +[10219] Forked 27589 +(27588) found +(27589) found +[10218] Forked 27590 +[10217] Forked 27591 +(27590) found +(27591) found +[10216] Forked 27592 +[10215] Forked 27593 +(27592) found +(27593) found +[10214] Forked 27594 +[10213] Forked 27595 +(27594) found +(27595) found +[10212] Forked 27596 +[10211] Forked 27597 +(27596) found +(27597) found +[10210] Forked 27598 +[10209] Forked 27599 +(27598) found +(27599) found +[10208] Forked 27600 +[10207] Forked 27601 +(27600) found +(27601) found +[10206] Forked 27602 +[10205] Forked 27603 +(27602) found +(27603) found +[10204] Forked 27604 +[10203] Forked 27605 +(27604) found +(27605) found +[10202] Forked 27606 +[10201] Forked 27607 +(27606) found +(27607) found +[10200] Forked 27608 +[10199] Forked 27609 +(27608) found +(27609) found +[10198] Forked 27610 +[10197] Forked 27611 +(27610) found +(27611) found +[10196] Forked 27612 +[10195] Forked 27613 +(27612) found +(27613) found +[10194] Forked 27614 +[10193] Forked 27615 +(27614) found +(27615) found +[10192] Forked 27616 +[10191] Forked 27617 +(27616) found +(27617) found +[10190] Forked 27618 +[10189] Forked 27619 +(27618) found +(27619) found +[10188] Forked 27620 +(27620) found +[10187] Forked 27621 +(27621) found +[10186] Forked 27622 +(27622) found +[10185] Forked 27623 +(27623) found +[10184] Forked 27624 +(27624) found +[10183] Forked 27625 +(27625) found +[10182] Forked 27626 +(27626) found +[10181] Forked 27627 +(27627) found +[10180] Forked 27628 +(27628) found +[10179] Forked 27629 +(27629) found +[10178] Forked 27630 +(27630) found +[10177] Forked 27631 +(27631) found +[10176] Forked 27632 +(27632) found +[10175] Forked 27633 +(27633) found +[10174] Forked 27634 +(27634) found +[10173] Forked 27635 +(27635) found +[10172] Forked 27636 +(27636) found +[10171] Forked 27637 +(27637) found +[10170] Forked 27638 +(27638) found +[10169] Forked 27639 +(27639) found +[10168] Forked 27640 +(27640) found +[10167] Forked 27641 +(27641) found +[10166] Forked 27642 +(27642) found +[10165] Forked 27643 +(27643) found +[10164] Forked 27644 +(27644) found +[10163] Forked 27645 +(27645) found +[10162] Forked 27646 +(27646) found +[10161] Forked 27647 +(27647) found +[10160] Forked 27648 +(27648) found +[10159] Forked 27649 +(27649) found +[10158] Forked 27650 +(27650) found +[10157] Forked 27651 +(27651) found +[10156] Forked 27652 +(27652) found +[10155] Forked 27653 +(27653) found +[10154] Forked 27654 +(27654) found +[10153] Forked 27655 +(27655) found +[10152] Forked 27656 +(27656) found +[10151] Forked 27657 +(27657) found +[10150] Forked 27658 +[10149] Forked 27659 +(27658) found +(27659) found +[10148] Forked 27660 +[10147] Forked 27661 +(27660) found +(27661) found +[10146] Forked 27662 +[10145] Forked 27663 +(27662) found +(27663) found +[10144] Forked 27664 +[10143] Forked 27665 +(27664) found +(27665) found +[10142] Forked 27666 +[10141] Forked 27667 +(27666) found +(27667) found +[10140] Forked 27668 +[10139] Forked 27669 +(27668) found +(27669) found +[10138] Forked 27670 +[10137] Forked 27671 +(27670) found +(27671) found +[10136] Forked 27672 +[10135] Forked 27673 +(27672) found +(27673) found +[10134] Forked 27674 +[10133] Forked 27675 +(27674) found +(27675) found +[10132] Forked 27676 +[10131] Forked 27677 +(27676) found +(27677) found +[10130] Forked 27678 +[10129] Forked 27679 +(27678) found +(27679) found +[10128] Forked 27680 +[10127] Forked 27681 +(27680) found +(27681) found +[10126] Forked 27682 +[10125] Forked 27683 +(27682) found +(27683) found +[10124] Forked 27684 +[10123] Forked 27685 +(27684) found +(27685) found +[10122] Forked 27686 +[10121] Forked 27687 +(27686) found +(27687) found +[10120] Forked 27688 +[10119] Forked 27689 +(27688) found +(27689) found +[10118] Forked 27691 +[10117] Forked 27692 +(27691) found +(27692) found +[10116] Forked 27693 +[10115] Forked 27694 +(27693) found +(27694) found +[10114] Forked 27695 +[10113] Forked 27696 +(27695) found +(27696) found +[10112] Forked 27697 +[10111] Forked 27698 +(27697) found +(27698) found +[10110] Forked 27699 +[10109] Forked 27700 +(27699) found +(27700) found +[10108] Forked 27701 +[10107] Forked 27702 +(27701) found +(27702) found +[10106] Forked 27703 +(27703) found +[10105] Forked 27704 +(27704) found +[10104] Forked 27705 +(27705) found +[10103] Forked 27706 +(27706) found +[10102] Forked 27707 +(27707) found +[10101] Forked 27708 +(27708) found +[10100] Forked 27709 +(27709) found +[10099] Forked 27710 +(27710) found +[10098] Forked 27711 +(27711) found +[10097] Forked 27712 +(27712) found +[10096] Forked 27713 +(27713) found +[10095] Forked 27714 +(27714) found +[10094] Forked 27715 +(27715) found +[10093] Forked 27716 +(27716) found +[10092] Forked 27717 +(27717) found +[10091] Forked 27718 +(27718) found +[10090] Forked 27719 +(27719) found +[10089] Forked 27720 +(27720) found +[10088] Forked 27721 +(27721) found +[10087] Forked 27722 +(27722) found +[10086] Forked 27723 +(27723) found +[10085] Forked 27724 +(27724) found +[10084] Forked 27725 +(27725) found +[10083] Forked 27726 +(27726) found +[10082] Forked 27727 +(27727) found +[10081] Forked 27728 +(27728) found +[10080] Forked 27729 +(27729) found +[10079] Forked 27730 +(27730) found +[10078] Forked 27731 +(27731) found +[10077] Forked 27732 +(27732) found +[10076] Forked 27733 +(27733) found +[10075] Forked 27734 +(27734) found +[10074] Forked 27735 +(27735) found +[10073] Forked 27736 +(27736) found +[10072] Forked 27737 +(27737) found +[10071] Forked 27738 +(27738) found +[10070] Forked 27739 +(27739) found +[10069] Forked 27740 +(27740) found +[10068] Forked 27741 +(27741) found +[10067] Forked 27742 +[10066] Forked 27743 +(27742) found +(27743) found +[10065] Forked 27744 +[10064] Forked 27745 +(27744) found +(27745) found +[10063] Forked 27746 +[10062] Forked 27747 +(27746) found +(27747) found +[10061] Forked 27748 +[10060] Forked 27749 +(27748) found +(27749) found +[10059] Forked 27750 +[10058] Forked 27751 +(27750) found +(27751) found +[10057] Forked 27752 +[10056] Forked 27753 +(27752) found +(27753) found +[10055] Forked 27754 +[10054] Forked 27756 +(27754) found +(27756) found +[10053] Forked 27757 +(27757) found +[10052] Forked 27758 +(27758) found +[10051] Forked 27759 +(27759) found +[10050] Forked 27760 +(27760) found +[10049] Forked 27761 +(27761) found +[10048] Forked 27762 +(27762) found +[10047] Forked 27763 +(27763) found +[10046] Forked 27764 +(27764) found +[10045] Forked 27765 +(27765) found +[10044] Forked 27766 +(27766) found +[10043] Forked 27767 +(27767) found +[10042] Forked 27768 +(27768) found +[10041] Forked 27769 +(27769) found +[10040] Forked 27770 +(27770) found +[10039] Forked 27771 +(27771) found +[10038] Forked 27772 +(27772) found +[10037] Forked 27773 +(27773) found +[10036] Forked 27774 +(27774) found +[10035] Forked 27775 +(27775) found +[10034] Forked 27776 +(27776) found +[10033] Forked 27777 +(27777) found +[10032] Forked 27778 +(27778) found +[10031] Forked 27779 +(27779) found +[10030] Forked 27780 +(27780) found +[10029] Forked 27781 +(27781) found +[10028] Forked 27782 +(27782) found +[10027] Forked 27783 +(27783) found +[10026] Forked 27784 +(27784) found +[10025] Forked 27785 +(27785) found +[10024] Forked 27786 +(27786) found +[10023] Forked 27787 +(27787) found +[10022] Forked 27788 +(27788) found +[10021] Forked 27789 +(27789) found +[10020] Forked 27790 +(27790) found +[10019] Forked 27791 +(27791) found +[10018] Forked 27792 +(27792) found +[10017] Forked 27793 +(27793) found +[10016] Forked 27794 +(27794) found +[10015] Forked 27795 +(27795) found +[10014] Forked 27796 +(27796) found +[10013] Forked 27797 +(27797) found +[10012] Forked 27798 +(27798) found +[10011] Forked 27799 +(27799) found +[10010] Forked 27800 +(27800) found +[10009] Forked 27801 +(27801) found +[10008] Forked 27802 +(27802) found +[10007] Forked 27803 +(27803) found +[10006] Forked 27804 +(27804) found +[10005] Forked 27805 +(27805) found +[10004] Forked 27806 +(27806) found +[10003] Forked 27807 +(27807) found +[10002] Forked 27808 +(27808) found +[10001] Forked 27809 +(27809) found +[10000] Forked 27810 +(27810) found +[9999] Forked 27811 +(27811) found +[9998] Forked 27812 +[9997] Forked 27813 +(27812) found +(27813) found +[9996] Forked 27814 +[9995] Forked 27815 +(27814) found +(27815) found +[9994] Forked 27816 +[9993] Forked 27817 +(27816) found +(27817) found +[9992] Forked 27818 +[9991] Forked 27819 +(27818) found +(27819) found +[9990] Forked 27820 +[9989] Forked 27821 +(27820) found +(27821) found +[9988] Forked 27822 +[9987] Forked 27823 +(27822) found +(27823) found +[9986] Forked 27824 +[9985] Forked 27825 +(27824) found +(27825) found +[9984] Forked 27826 +[9983] Forked 27827 +(27826) found +(27827) found +[9982] Forked 27828 +[9981] Forked 27829 +(27828) found +(27829) found +[9980] Forked 27831 +[9979] Forked 27832 +(27831) found +(27832) found +[9978] Forked 27833 +[9977] Forked 27834 +(27833) found +(27834) found +[9976] Forked 27835 +[9975] Forked 27836 +(27835) found +(27836) found +[9974] Forked 27837 +[9973] Forked 27838 +(27837) found +(27838) found +[9972] Forked 27839 +[9971] Forked 27840 +(27839) found +(27840) found +[9970] Forked 27841 +[9969] Forked 27842 +(27841) found +(27842) found +[9968] Forked 27843 +[9967] Forked 27844 +(27843) found +(27844) found +[9966] Forked 27845 +[9965] Forked 27846 +(27845) found +(27846) found +[9964] Forked 27847 +[9963] Forked 27848 +(27847) found +(27848) found +[9962] Forked 27849 +[9961] Forked 27850 +(27849) found +(27850) found +[9960] Forked 27851 +[9959] Forked 27852 +(27851) found +(27852) found +[9958] Forked 27853 +(27853) found +[9957] Forked 27854 +(27854) found +[9956] Forked 27855 +(27855) found +[9955] Forked 27856 +(27856) found +[9954] Forked 27857 +(27857) found +[9953] Forked 27858 +(27858) found +[9952] Forked 27859 +(27859) found +[9951] Forked 27860 +(27860) found +[9950] Forked 27861 +(27861) found +[9949] Forked 27862 +(27862) found +[9948] Forked 27863 +(27863) found +[9947] Forked 27864 +(27864) found +[9946] Forked 27865 +(27865) found +[9945] Forked 27866 +(27866) found +[9944] Forked 27867 +(27867) found +[9943] Forked 27868 +(27868) found +[9942] Forked 27869 +(27869) found +[9941] Forked 27870 +(27870) found +[9940] Forked 27871 +(27871) found +[9939] Forked 27872 +(27872) found +[9938] Forked 27873 +(27873) found +[9937] Forked 27874 +(27874) found +[9936] Forked 27875 +(27875) found +[9935] Forked 27876 +(27876) found +[9934] Forked 27877 +(27877) found +[9933] Forked 27878 +(27878) found +[9932] Forked 27879 +(27879) found +[9931] Forked 27880 +(27880) found +[9930] Forked 27881 +(27881) found +[9929] Forked 27882 +(27882) found +[9928] Forked 27883 +(27883) found +[9927] Forked 27884 +(27884) found +[9926] Forked 27885 +(27885) found +[9925] Forked 27886 +(27886) found +[9924] Forked 27887 +(27887) found +[9923] Forked 27888 +(27888) found +[9922] Forked 27889 +(27889) found +[9921] Forked 27890 +(27890) found +[9920] Forked 27891 +(27891) found +[9919] Forked 27892 +(27892) found +[9918] Forked 27893 +(27893) found +[9917] Forked 27894 +[9916] Forked 27895 +(27894) found +(27895) found +[9915] Forked 27896 +[9914] Forked 27897 +(27896) found +(27897) found +[9913] Forked 27898 +[9912] Forked 27899 +(27898) found +(27899) found +[9911] Forked 27900 +[9910] Forked 27901 +(27900) found +(27901) found +[9909] Forked 27902 +[9908] Forked 27903 +(27902) found +(27903) found +[9907] Forked 27904 +[9906] Forked 27905 +(27904) found +(27905) found +[9905] Forked 27906 +[9904] Forked 27907 +(27906) found +(27907) found +[9903] Forked 27908 +[9902] Forked 27909 +(27908) found +(27909) found +[9901] Forked 27910 +[9900] Forked 27911 +(27910) found +(27911) found +[9899] Forked 27912 +[9898] Forked 27913 +(27912) found +(27913) found +[9897] Forked 27914 +[9896] Forked 27915 +(27914) found +(27915) found +[9895] Forked 27916 +[9894] Forked 27917 +(27916) found +(27917) found +[9893] Forked 27918 +[9892] Forked 27919 +(27918) found +(27919) found +[9891] Forked 27920 +[9890] Forked 27921 +(27920) found +(27921) found +[9889] Forked 27922 +[9888] Forked 27923 +(27922) found +(27923) found +[9887] Forked 27924 +[9886] Forked 27925 +(27924) found +(27925) found +[9885] Forked 27926 +[9884] Forked 27927 +(27926) found +(27927) found +[9883] Forked 27928 +[9882] Forked 27929 +(27928) found +(27929) found +[9881] Forked 27930 +[9880] Forked 27931 +(27930) found +(27931) found +[9879] Forked 27932 +[9878] Forked 27933 +(27932) found +(27933) found +[9877] Forked 27934 +(27934) found +[9876] Forked 27935 +(27935) found +[9875] Forked 27936 +(27936) found +[9874] Forked 27937 +(27937) found +[9873] Forked 27938 +(27938) found +[9872] Forked 27939 +(27939) found +[9871] Forked 27940 +(27940) found +[9870] Forked 27941 +(27941) found +[9869] Forked 27942 +(27942) found +[9868] Forked 27943 +(27943) found +[9867] Forked 27944 +(27944) found +[9866] Forked 27945 +(27945) found +[9865] Forked 27946 +(27946) found +[9864] Forked 27947 +(27947) found +[9863] Forked 27948 +(27948) found +[9862] Forked 27949 +(27949) found +[9861] Forked 27950 +(27950) found +[9860] Forked 27951 +(27951) found +[9859] Forked 27952 +(27952) found +[9858] Forked 27953 +(27953) found +[9857] Forked 27954 +(27954) found +[9856] Forked 27955 +(27955) found +[9855] Forked 27956 +(27956) found +[9854] Forked 27957 +(27957) found +[9853] Forked 27958 +(27958) found +[9852] Forked 27959 +(27959) found +[9851] Forked 27960 +(27960) found +[9850] Forked 27961 +(27961) found +[9849] Forked 27962 +(27962) found +[9848] Forked 27963 +(27963) found +[9847] Forked 27964 +(27964) found +[9846] Forked 27965 +(27965) found +[9845] Forked 27966 +(27966) found +[9844] Forked 27967 +(27967) found +[9843] Forked 27968 +(27968) found +[9842] Forked 27969 +(27969) found +[9841] Forked 27970 +(27970) found +[9840] Forked 27971 +(27971) found +[9839] Forked 27972 +(27972) found +[9838] Forked 27973 +[9837] Forked 27974 +(27973) found +(27974) found +[9836] Forked 27975 +[9835] Forked 27976 +(27975) found +(27976) found +[9834] Forked 27977 +[9833] Forked 27978 +(27977) found +(27978) found +[9832] Forked 27979 +[9831] Forked 27980 +(27979) found +(27980) found +[9830] Forked 27981 +[9829] Forked 27982 +(27981) found +(27982) found +[9828] Forked 27983 +[9827] Forked 27984 +(27983) found +(27984) found +[9826] Forked 27985 +[9825] Forked 27986 +(27985) found +(27986) found +[9824] Forked 27988 +[9823] Forked 27989 +(27988) found +(27989) found +[9822] Forked 27990 +[9821] Forked 27991 +(27990) found +(27991) found +[9820] Forked 27992 +(27992) found +[9819] Forked 27993 +[9818] Forked 27994 +(27993) found +(27994) found +[9817] Forked 27995 +[9816] Forked 27996 +(27995) found +(27996) found +[9815] Forked 27997 +[9814] Forked 27998 +(27998) found +(27997) found +[9813] Forked 27999 +(27999) found +[9812] Forked 28000 +(28000) found +[9811] Forked 28001 +(28001) found +[9810] Forked 28002 +(28002) found +[9809] Forked 28003 +(28003) found +[9808] Forked 28004 +(28004) found +[9807] Forked 28005 +(28005) found +[9806] Forked 28006 +(28006) found +[9805] Forked 28007 +(28007) found +[9804] Forked 28008 +(28008) found +[9803] Forked 28009 +(28009) found +[9802] Forked 28010 +(28010) found +[9801] Forked 28011 +(28011) found +[9800] Forked 28012 +(28012) found +[9799] Forked 28013 +(28013) found +[9798] Forked 28014 +(28014) found +[9797] Forked 28015 +(28015) found +[9796] Forked 28016 +(28016) found +[9795] Forked 28017 +(28017) found +[9794] Forked 28018 +(28018) found +[9793] Forked 28019 +(28019) found +[9792] Forked 28020 +(28020) found +[9791] Forked 28021 +(28021) found +[9790] Forked 28022 +(28022) found +[9789] Forked 28023 +(28023) found +[9788] Forked 28024 +(28024) found +[9787] Forked 28025 +(28025) found +[9786] Forked 28026 +(28026) found +[9785] Forked 28027 +(28027) found +[9784] Forked 28028 +(28028) found +[9783] Forked 28029 +(28029) found +[9782] Forked 28030 +(28030) found +[9781] Forked 28031 +(28031) found +[9780] Forked 28032 +(28032) found +[9779] Forked 28033 +(28033) found +[9778] Forked 28034 +(28034) found +[9777] Forked 28035 +(28035) found +[9776] Forked 28036 +(28036) found +[9775] Forked 28037 +(28037) found +[9774] Forked 28038 +(28038) found +[9773] Forked 28039 +(28039) found +[9772] Forked 28040 +(28040) found +[9771] Forked 28041 +(28041) found +[9770] Forked 28042 +(28042) found +[9769] Forked 28043 +(28043) found +[9768] Forked 28044 +(28044) found +[9767] Forked 28045 +(28045) found +[9766] Forked 28047 +(28047) found +[9765] Forked 28048 +(28048) found +[9764] Forked 28049 +(28049) found +[9763] Forked 28050 +(28050) found +[9762] Forked 28051 +(28051) found +[9761] Forked 28052 +(28052) found +[9760] Forked 28053 +(28053) found +[9759] Forked 28054 +(28054) found +[9758] Forked 28055 +(28055) found +[9757] Forked 28056 +(28056) found +[9756] Forked 28057 +(28057) found +[9755] Forked 28058 +(28058) found +[9754] Forked 28059 +(28059) found +[9753] Forked 28060 +(28060) found +[9752] Forked 28061 +(28061) found +[9751] Forked 28062 +(28062) found +[9750] Forked 28063 +(28063) found +[9749] Forked 28064 +(28064) found +[9748] Forked 28065 +(28065) found +[9747] Forked 28066 +(28066) found +[9746] Forked 28067 +(28067) found +[9745] Forked 28068 +(28068) found +[9744] Forked 28069 +(28069) found +[9743] Forked 28070 +(28070) found +[9742] Forked 28071 +(28071) found +[9741] Forked 28072 +(28072) found +[9740] Forked 28073 +(28073) found +[9739] Forked 28074 +(28074) found +[9738] Forked 28075 +(28075) found +[9737] Forked 28076 +(28076) found +[9736] Forked 28077 +(28077) found +[9735] Forked 28078 +(28078) found +[9734] Forked 28079 +(28079) found +[9733] Forked 28080 +(28080) found +[9732] Forked 28081 +(28081) found +[9731] Forked 28082 +(28082) found +[9730] Forked 28083 +(28083) found +[9729] Forked 28084 +(28084) found +[9728] Forked 28085 +(28085) found +[9727] Forked 28086 +(28086) found +[9726] Forked 28087 +(28087) found +[9725] Forked 28088 +(28088) found +[9724] Forked 28089 +(28089) found +[9723] Forked 28090 +(28090) found +[9722] Forked 28091 +(28091) found +[9721] Forked 28092 +(28092) found +[9720] Forked 28093 +(28093) found +[9719] Forked 28094 +(28094) found +[9718] Forked 28095 +(28095) found +[9717] Forked 28096 +(28096) found +[9716] Forked 28097 +(28097) found +[9715] Forked 28098 +(28098) found +[9714] Forked 28099 +(28099) found +[9713] Forked 28100 +(28100) found +[9712] Forked 28101 +(28101) found +[9711] Forked 28102 +(28102) found +[9710] Forked 28103 +(28103) found +[9709] Forked 28104 +[9708] Forked 28105 +(28104) found +(28105) found +[9707] Forked 28106 +[9706] Forked 28107 +(28106) found +(28107) found +[9705] Forked 28108 +[9704] Forked 28109 +(28108) found +(28109) found +[9703] Forked 28110 +[9702] Forked 28111 +(28110) found +(28111) found +[9701] Forked 28112 +[9700] Forked 28113 +(28112) found +(28113) found +[9699] Forked 28114 +[9698] Forked 28115 +(28114) found +(28115) found +[9697] Forked 28116 +[9696] Forked 28117 +(28116) found +(28117) found +[9695] Forked 28118 +(28118) found +[9694] Forked 28119 +(28119) found +[9693] Forked 28120 +[9692] Forked 28121 +(28120) found +(28121) found +[9691] Forked 28122 +[9690] Forked 28123 +(28122) found +(28123) found +[9689] Forked 28124 +[9688] Forked 28125 +(28124) found +(28125) found +[9687] Forked 28126 +[9686] Forked 28127 +(28126) found +(28127) found +[9685] Forked 28128 +[9684] Forked 28129 +(28128) found +(28129) found +[9683] Forked 28130 +[9682] Forked 28131 +(28130) found +(28131) found +[9681] Forked 28132 +[9680] Forked 28133 +(28132) found +(28133) found +[9679] Forked 28134 +[9678] Forked 28135 +(28134) found +(28135) found +[9677] Forked 28136 +[9676] Forked 28137 +(28136) found +(28137) found +[9675] Forked 28138 +[9674] Forked 28139 +(28138) found +(28139) found +[9673] Forked 28140 +[9672] Forked 28141 +(28140) found +(28141) found +[9671] Forked 28142 +[9670] Forked 28143 +(28142) found +(28143) found +[9669] Forked 28144 +[9668] Forked 28145 +(28144) found +(28145) found +[9667] Forked 28146 +[9666] Forked 28147 +(28146) found +(28147) found +[9665] Forked 28148 +[9664] Forked 28149 +(28148) found +(28149) found +[9663] Forked 28150 +[9662] Forked 28151 +(28150) found +(28151) found +[9661] Forked 28152 +[9660] Forked 28153 +(28152) found +(28153) found +[9659] Forked 28154 +[9658] Forked 28155 +(28154) found +(28155) found +[9657] Forked 28156 +[9656] Forked 28157 +(28156) found +(28157) found +[9655] Forked 28158 +[9654] Forked 28159 +(28158) found +(28159) found +[9653] Forked 28160 +[9652] Forked 28161 +(28160) found +(28161) found +[9651] Forked 28162 +[9650] Forked 28163 +(28162) found +(28163) found +[9649] Forked 28164 +[9648] Forked 28165 +(28164) found +(28165) found +[9647] Forked 28166 +[9646] Forked 28167 +(28166) found +(28167) found +[9645] Forked 28168 +[9644] Forked 28169 +(28168) found +(28169) found +[9643] Forked 28170 +[9642] Forked 28171 +(28170) found +(28171) found +[9641] Forked 28172 +[9640] Forked 28173 +(28172) found +(28173) found +[9639] Forked 28174 +[9638] Forked 28175 +(28174) found +(28175) found +[9637] Forked 28176 +[9636] Forked 28177 +(28176) found +(28177) found +[9635] Forked 28178 +[9634] Forked 28179 +(28178) found +(28179) found +[9633] Forked 28180 +[9632] Forked 28181 +(28180) found +(28181) found +[9631] Forked 28182 +[9630] Forked 28183 +(28182) found +(28183) found +[9629] Forked 28184 +[9628] Forked 28185 +(28184) found +(28185) found +[9627] Forked 28186 +[9626] Forked 28187 +(28186) found +(28187) found +[9625] Forked 28188 +[9624] Forked 28189 +(28188) found +(28189) found +[9623] Forked 28190 +[9622] Forked 28191 +(28190) found +(28191) found +[9621] Forked 28192 +(28192) found +[9620] Forked 28193 +(28193) found +[9619] Forked 28194 +(28194) found +[9618] Forked 28195 +(28195) found +[9617] Forked 28196 +(28196) found +[9616] Forked 28197 +(28197) found +[9615] Forked 28198 +(28198) found +[9614] Forked 28199 +(28199) found +[9613] Forked 28200 +(28200) found +[9612] Forked 28201 +(28201) found +[9611] Forked 28202 +(28202) found +[9610] Forked 28203 +(28203) found +[9609] Forked 28204 +(28204) found +[9608] Forked 28205 +(28205) found +[9607] Forked 28206 +(28206) found +[9606] Forked 28207 +(28207) found +[9605] Forked 28208 +(28208) found +[9604] Forked 28209 +(28209) found +[9603] Forked 28210 +(28210) found +[9602] Forked 28211 +(28211) found +[9601] Forked 28212 +(28212) found +[9600] Forked 28213 +(28213) found +[9599] Forked 28214 +(28214) found +[9598] Forked 28215 +(28215) found +[9597] Forked 28216 +(28216) found +[9596] Forked 28217 +(28217) found +[9595] Forked 28218 +(28218) found +[9594] Forked 28219 +(28219) found +[9593] Forked 28220 +(28220) found +[9592] Forked 28221 +(28221) found +[9591] Forked 28222 +(28222) found +[9590] Forked 28223 +(28223) found +[9589] Forked 28224 +(28224) found +[9588] Forked 28225 +(28225) found +[9587] Forked 28226 +[9586] Forked 28227 +(28226) found +(28227) found +[9585] Forked 28228 +[9584] Forked 28229 +(28228) found +(28229) found +[9583] Forked 28230 +[9582] Forked 28231 +(28230) found +(28231) found +[9581] Forked 28232 +[9580] Forked 28233 +(28232) found +(28233) found +[9579] Forked 28234 +[9578] Forked 28235 +(28234) found +(28235) found +[9577] Forked 28236 +[9576] Forked 28237 +(28236) found +(28237) found +[9575] Forked 28238 +[9574] Forked 28239 +(28238) found +(28239) found +[9573] Forked 28240 +[9572] Forked 28241 +(28240) found +(28241) found +[9571] Forked 28242 +[9570] Forked 28243 +(28242) found +(28243) found +[9569] Forked 28244 +[9568] Forked 28245 +(28244) found +(28245) found +[9567] Forked 28246 +[9566] Forked 28247 +(28246) found +(28247) found +[9565] Forked 28248 +[9564] Forked 28249 +(28248) found +(28249) found +[9563] Forked 28250 +[9562] Forked 28251 +(28250) found +(28251) found +[9561] Forked 28252 +[9560] Forked 28253 +(28252) found +(28253) found +[9559] Forked 28254 +[9558] Forked 28255 +(28254) found +(28255) found +[9557] Forked 28256 +[9556] Forked 28257 +(28256) found +(28257) found +[9555] Forked 28258 +[9554] Forked 28259 +(28258) found +(28259) found +[9553] Forked 28260 +[9552] Forked 28261 +(28260) found +(28261) found +[9551] Forked 28262 +[9550] Forked 28263 +(28262) found +(28263) found +[9549] Forked 28264 +[9548] Forked 28265 +(28264) found +(28265) found +[9547] Forked 28266 +[9546] Forked 28267 +(28266) found +(28267) found +[9545] Forked 28268 +[9544] Forked 28269 +(28268) found +(28269) found +[9543] Forked 28270 +[9542] Forked 28271 +(28270) found +(28271) found +[9541] Forked 28272 +(28272) found +[9540] Forked 28273 +(28273) found +[9539] Forked 28274 +(28274) found +[9538] Forked 28275 +(28275) found +[9537] Forked 28276 +(28276) found +[9536] Forked 28277 +(28277) found +[9535] Forked 28278 +(28278) found +[9534] Forked 28279 +(28279) found +[9533] Forked 28280 +(28280) found +[9532] Forked 28281 +(28281) found +[9531] Forked 28282 +(28282) found +[9530] Forked 28283 +(28283) found +[9529] Forked 28284 +(28284) found +[9528] Forked 28285 +(28285) found +[9527] Forked 28286 +(28286) found +[9526] Forked 28287 +(28287) found +[9525] Forked 28288 +(28288) found +[9524] Forked 28289 +(28289) found +[9523] Forked 28290 +(28290) found +[9522] Forked 28291 +(28291) found +[9521] Forked 28292 +(28292) found +[9520] Forked 28293 +(28293) found +[9519] Forked 28294 +(28294) found +[9518] Forked 28295 +(28295) found +[9517] Forked 28296 +(28296) found +[9516] Forked 28297 +(28297) found +[9515] Forked 28298 +(28298) found +[9514] Forked 28299 +(28299) found +[9513] Forked 28300 +(28300) found +[9512] Forked 28301 +(28301) found +[9511] Forked 28302 +(28302) found +[9510] Forked 28303 +(28303) found +[9509] Forked 28304 +(28304) found +[9508] Forked 28305 +(28305) found +[9507] Forked 28306 +(28306) found +[9506] Forked 28307 +(28307) found +[9505] Forked 28308 +(28308) found +[9504] Forked 28309 +[9503] Forked 28310 +(28309) found +(28310) found +[9502] Forked 28311 +[9501] Forked 28312 +(28311) found +(28312) found +[9500] Forked 28313 +[9499] Forked 28314 +(28313) found +(28314) found +[9498] Forked 28315 +[9497] Forked 28316 +(28315) found +(28316) found +[9496] Forked 28317 +[9495] Forked 28318 +(28317) found +(28318) found +[9494] Forked 28319 +[9493] Forked 28320 +(28319) found +(28320) found +[9492] Forked 28321 +[9491] Forked 28322 +(28321) found +(28322) found +[9490] Forked 28323 +[9489] Forked 28324 +(28323) found +(28324) found +[9488] Forked 28325 +[9487] Forked 28326 +(28325) found +(28326) found +[9486] Forked 28327 +[9485] Forked 28328 +(28327) found +(28328) found +[9484] Forked 28329 +(28329) found +[9483] Forked 28330 +[9482] Forked 28331 +(28330) found +(28331) found +[9481] Forked 28332 +[9480] Forked 28333 +(28332) found +(28333) found +[9479] Forked 28334 +[9478] Forked 28335 +(28334) found +(28335) found +[9477] Forked 28336 +[9476] Forked 28337 +(28336) found +(28337) found +[9475] Forked 28338 +[9474] Forked 28339 +(28338) found +(28339) found +[9473] Forked 28340 +[9472] Forked 28341 +(28340) found +(28341) found +[9471] Forked 28342 +[9470] Forked 28343 +(28342) found +(28343) found +[9469] Forked 28344 +[9468] Forked 28345 +(28344) found +(28345) found +[9467] Forked 28346 +[9466] Forked 28347 +(28346) found +(28347) found +[9465] Forked 28348 +[9464] Forked 28349 +(28348) found +(28349) found +[9463] Forked 28350 +[9462] Forked 28351 +(28350) found +(28351) found +[9461] Forked 28352 +[9460] Forked 28353 +(28352) found +(28353) found +[9459] Forked 28354 +(28354) found +[9458] Forked 28355 +(28355) found +[9457] Forked 28356 +(28356) found +[9456] Forked 28357 +(28357) found +[9455] Forked 28358 +(28358) found +[9454] Forked 28359 +(28359) found +[9453] Forked 28360 +(28360) found +[9452] Forked 28361 +(28361) found +[9451] Forked 28362 +(28362) found +[9450] Forked 28363 +(28363) found +[9449] Forked 28364 +(28364) found +[9448] Forked 28365 +(28365) found +[9447] Forked 28366 +(28366) found +[9446] Forked 28367 +(28367) found +[9445] Forked 28368 +(28368) found +[9444] Forked 28369 +(28369) found +[9443] Forked 28370 +(28370) found +[9442] Forked 28371 +(28371) found +[9441] Forked 28372 +(28372) found +[9440] Forked 28373 +(28373) found +[9439] Forked 28374 +(28374) found +[9438] Forked 28375 +(28375) found +[9437] Forked 28376 +(28376) found +[9436] Forked 28377 +(28377) found +[9435] Forked 28378 +(28378) found +[9434] Forked 28379 +(28379) found +[9433] Forked 28380 +(28380) found +[9432] Forked 28381 +(28381) found +[9431] Forked 28382 +(28382) found +[9430] Forked 28383 +(28383) found +[9429] Forked 28384 +(28384) found +[9428] Forked 28385 +(28385) found +[9427] Forked 28386 +(28386) found +[9426] Forked 28387 +(28387) found +[9425] Forked 28388 +(28388) found +[9424] Forked 28389 +[9423] Forked 28390 +(28389) found +(28390) found +[9422] Forked 28391 +[9421] Forked 28392 +(28391) found +(28392) found +[9420] Forked 28393 +[9419] Forked 28394 +(28393) found +(28394) found +[9418] Forked 28395 +[9417] Forked 28396 +(28395) found +(28396) found +[9416] Forked 28397 +[9415] Forked 28398 +(28397) found +(28398) found +[9414] Forked 28399 +[9413] Forked 28400 +(28399) found +(28400) found +[9412] Forked 28401 +[9411] Forked 28402 +(28401) found +(28402) found +[9410] Forked 28403 +[9409] Forked 28404 +(28403) found +(28404) found +[9408] Forked 28405 +[9407] Forked 28406 +(28405) found +(28406) found +[9406] Forked 28407 +[9405] Forked 28408 +(28407) found +(28408) found +[9404] Forked 28409 +[9403] Forked 28410 +(28409) found +(28410) found +[9402] Forked 28411 +[9401] Forked 28412 +(28411) found +(28412) found +[9400] Forked 28413 +[9399] Forked 28414 +(28413) found +(28414) found +[9398] Forked 28415 +[9397] Forked 28416 +(28415) found +(28416) found +[9396] Forked 28417 +[9395] Forked 28418 +(28417) found +(28418) found +[9394] Forked 28419 +[9393] Forked 28420 +(28419) found +(28420) found +[9392] Forked 28421 +[9391] Forked 28422 +(28421) found +(28422) found +[9390] Forked 28423 +[9389] Forked 28424 +(28423) found +(28424) found +[9388] Forked 28425 +[9387] Forked 28426 +(28425) found +(28426) found +[9386] Forked 28427 +[9385] Forked 28428 +(28427) found +(28428) found +[9384] Forked 28429 +[9383] Forked 28430 +(28429) found +(28430) found +[9382] Forked 28431 +[9381] Forked 28432 +(28431) found +(28432) found +[9380] Forked 28433 +[9379] Forked 28434 +(28433) found +(28434) found +[9378] Forked 28435 +(28435) found +[9377] Forked 28436 +(28436) found +[9376] Forked 28437 +(28437) found +[9375] Forked 28438 +(28438) found +[9374] Forked 28439 +(28439) found +[9373] Forked 28440 +(28440) found +[9372] Forked 28441 +(28441) found +[9371] Forked 28442 +(28442) found +[9370] Forked 28443 +(28443) found +[9369] Forked 28444 +(28444) found +[9368] Forked 28445 +(28445) found +[9367] Forked 28446 +(28446) found +[9366] Forked 28447 +(28447) found +[9365] Forked 28448 +(28448) found +[9364] Forked 28449 +(28449) found +[9363] Forked 28450 +(28450) found +[9362] Forked 28451 +(28451) found +[9361] Forked 28452 +(28452) found +[9360] Forked 28453 +(28453) found +[9359] Forked 28454 +(28454) found +[9358] Forked 28455 +(28455) found +[9357] Forked 28456 +(28456) found +[9356] Forked 28457 +(28457) found +[9355] Forked 28458 +(28458) found +[9354] Forked 28459 +(28459) found +[9353] Forked 28460 +(28460) found +[9352] Forked 28461 +(28461) found +[9351] Forked 28462 +(28462) found +[9350] Forked 28463 +(28463) found +[9349] Forked 28464 +(28464) found +[9348] Forked 28465 +(28465) found +[9347] Forked 28466 +(28466) found +[9346] Forked 28467 +(28467) found +[9345] Forked 28468 +(28468) found +[9344] Forked 28469 +(28469) found +[9343] Forked 28470 +[9342] Forked 28471 +(28470) found +(28471) found +[9341] Forked 28472 +[9340] Forked 28473 +(28472) found +(28473) found +[9339] Forked 28474 +[9338] Forked 28475 +(28474) found +(28475) found +[9337] Forked 28476 +[9336] Forked 28477 +(28476) found +(28477) found +[9335] Forked 28478 +[9334] Forked 28479 +(28478) found +(28479) found +[9333] Forked 28480 +[9332] Forked 28481 +(28480) found +(28481) found +[9331] Forked 28482 +[9330] Forked 28483 +(28482) found +(28483) found +[9329] Forked 28484 +[9328] Forked 28485 +(28484) found +(28485) found +[9327] Forked 28486 +[9326] Forked 28487 +(28486) found +(28487) found +[9325] Forked 28488 +[9324] Forked 28489 +(28488) found +(28489) found +[9323] Forked 28490 +[9322] Forked 28491 +(28490) found +(28491) found +[9321] Forked 28492 +[9320] Forked 28493 +(28492) found +(28493) found +[9319] Forked 28494 +[9318] Forked 28495 +(28494) found +(28495) found +[9317] Forked 28496 +[9316] Forked 28497 +(28496) found +(28497) found +[9315] Forked 28498 +[9314] Forked 28499 +(28498) found +(28499) found +[9313] Forked 28500 +[9312] Forked 28501 +(28500) found +(28501) found +[9311] Forked 28502 +[9310] Forked 28503 +(28502) found +(28503) found +[9309] Forked 28504 +[9308] Forked 28505 +(28504) found +(28505) found +[9307] Forked 28506 +[9306] Forked 28507 +(28506) found +(28507) found +[9305] Forked 28508 +[9304] Forked 28509 +(28508) found +(28509) found +[9303] Forked 28510 +[9302] Forked 28511 +(28510) found +(28511) found +[9301] Forked 28512 +[9300] Forked 28513 +(28512) found +(28513) found +[9299] Forked 28514 +[9298] Forked 28515 +(28514) found +(28515) found +[9297] Forked 28516 +(28516) found +[9296] Forked 28517 +(28517) found +[9295] Forked 28518 +(28518) found +[9294] Forked 28519 +(28519) found +[9293] Forked 28520 +(28520) found +[9292] Forked 28521 +(28521) found +[9291] Forked 28522 +(28522) found +[9290] Forked 28523 +(28523) found +[9289] Forked 28524 +(28524) found +[9288] Forked 28525 +(28525) found +[9287] Forked 28526 +(28526) found +[9286] Forked 28527 +(28527) found +[9285] Forked 28528 +(28528) found +[9284] Forked 28529 +(28529) found +[9283] Forked 28530 +(28530) found +[9282] Forked 28531 +(28531) found +[9281] Forked 28532 +(28532) found +[9280] Forked 28533 +(28533) found +[9279] Forked 28534 +(28534) found +[9278] Forked 28535 +(28535) found +[9277] Forked 28536 +(28536) found +[9276] Forked 28537 +(28537) found +[9275] Forked 28538 +(28538) found +[9274] Forked 28539 +(28539) found +[9273] Forked 28540 +(28540) found +[9272] Forked 28541 +(28541) found +[9271] Forked 28542 +(28542) found +[9270] Forked 28543 +(28543) found +[9269] Forked 28544 +(28544) found +[9268] Forked 28545 +(28545) found +[9267] Forked 28546 +(28546) found +[9266] Forked 28547 +(28547) found +[9265] Forked 28548 +(28548) found +[9264] Forked 28549 +(28549) found +[9263] Forked 28550 +[9262] Forked 28551 +(28550) found +(28551) found +[9261] Forked 28552 +[9260] Forked 28553 +(28552) found +(28553) found +[9259] Forked 28554 +[9258] Forked 28555 +(28554) found +(28555) found +[9257] Forked 28556 +[9256] Forked 28557 +(28556) found +(28557) found +[9255] Forked 28558 +[9254] Forked 28559 +(28558) found +(28559) found +[9253] Forked 28560 +[9252] Forked 28561 +(28560) found +(28561) found +[9251] Forked 28562 +[9250] Forked 28563 +(28562) found +(28563) found +[9249] Forked 28564 +[9248] Forked 28565 +(28564) found +(28565) found +[9247] Forked 28566 +[9246] Forked 28567 +(28566) found +(28567) found +[9245] Forked 28568 +[9244] Forked 28569 +(28568) found +(28569) found +[9243] Forked 28570 +[9242] Forked 28571 +(28570) found +(28571) found +[9241] Forked 28572 +(28572) found +[9240] Forked 28573 +[9239] Forked 28574 +(28573) found +(28574) found +[9238] Forked 28575 +[9237] Forked 28576 +(28575) found +(28576) found +[9236] Forked 28577 +[9235] Forked 28578 +(28577) found +(28578) found +[9234] Forked 28579 +[9233] Forked 28580 +(28579) found +(28580) found +[9232] Forked 28581 +[9231] Forked 28582 +(28581) found +(28582) found +[9230] Forked 28583 +[9229] Forked 28584 +(28583) found +(28584) found +[9228] Forked 28585 +[9227] Forked 28586 +(28585) found +(28586) found +[9226] Forked 28587 +[9225] Forked 28588 +(28587) found +(28588) found +[9224] Forked 28589 +[9223] Forked 28590 +(28589) found +(28590) found +[9222] Forked 28591 +[9221] Forked 28592 +(28591) found +(28592) found +[9220] Forked 28593 +[9219] Forked 28594 +(28593) found +(28594) found +[9218] Forked 28595 +[9217] Forked 28596 +(28595) found +(28596) found +[9216] Forked 28597 +[9215] Forked 28598 +(28597) found +(28598) found +[9214] Forked 28599 +[9213] Forked 28600 +(28599) found +(28600) found +[9212] Forked 28601 +[9211] Forked 28602 +(28601) found +(28602) found +[9210] Forked 28603 +[9209] Forked 28604 +(28603) found +(28604) found +[9208] Forked 28605 +[9207] Forked 28606 +(28605) found +(28606) found +[9206] Forked 28607 +[9205] Forked 28608 +(28607) found +(28608) found +[9204] Forked 28609 +[9203] Forked 28610 +(28609) found +(28610) found +[9202] Forked 28611 +[9201] Forked 28612 +(28611) found +(28612) found +[9200] Forked 28613 +[9199] Forked 28614 +(28613) found +(28614) found +[9198] Forked 28615 +[9197] Forked 28616 +(28615) found +(28616) found +[9196] Forked 28617 +[9195] Forked 28618 +(28617) found +(28618) found +[9194] Forked 28619 +[9193] Forked 28620 +(28619) found +(28620) found +[9192] Forked 28621 +[9191] Forked 28622 +(28621) found +(28622) found +[9190] Forked 28623 +[9189] Forked 28624 +(28623) found +(28624) found +[9188] Forked 28625 +[9187] Forked 28626 +(28625) found +(28626) found +[9186] Forked 28627 +[9185] Forked 28628 +(28627) found +(28628) found +[9184] Forked 28629 +[9183] Forked 28630 +(28629) found +(28630) found +[9182] Forked 28631 +[9181] Forked 28632 +(28631) found +(28632) found +[9180] Forked 28633 +[9179] Forked 28634 +(28633) found +(28634) found +[9178] Forked 28635 +[9177] Forked 28636 +(28635) found +(28636) found +[9176] Forked 28637 +[9175] Forked 28638 +(28637) found +(28638) found +[9174] Forked 28639 +[9173] Forked 28640 +(28639) found +(28640) found +[9172] Forked 28641 +(28641) found +[9171] Forked 28642 +(28642) found +[9170] Forked 28643 +(28643) found +[9169] Forked 28644 +(28644) found +[9168] Forked 28645 +(28645) found +[9167] Forked 28646 +(28646) found +[9166] Forked 28647 +(28647) found +[9165] Forked 28648 +(28648) found +[9164] Forked 28649 +(28649) found +[9163] Forked 28650 +(28650) found +[9162] Forked 28651 +(28651) found +[9161] Forked 28652 +(28652) found +[9160] Forked 28653 +(28653) found +[9159] Forked 28654 +(28654) found +[9158] Forked 28655 +(28655) found +[9157] Forked 28656 +(28656) found +[9156] Forked 28657 +(28657) found +[9155] Forked 28658 +(28658) found +[9154] Forked 28659 +(28659) found +[9153] Forked 28660 +(28660) found +[9152] Forked 28661 +(28661) found +[9151] Forked 28662 +(28662) found +[9150] Forked 28663 +(28663) found +[9149] Forked 28664 +(28664) found +[9148] Forked 28665 +(28665) found +[9147] Forked 28666 +(28666) found +[9146] Forked 28667 +(28667) found +[9145] Forked 28668 +(28668) found +[9144] Forked 28669 +(28669) found +[9143] Forked 28670 +(28670) found +[9142] Forked 28671 +(28671) found +[9141] Forked 28672 +(28672) found +[9140] Forked 28673 +(28673) found +[9139] Forked 28674 +(28674) found +[9138] Forked 28675 +(28675) found +[9137] Forked 28676 +(28676) found +[9136] Forked 28677 +(28677) found +[9135] Forked 28679 +(28679) found +[9134] Forked 28680 +[9133] Forked 28681 +(28680) found +(28681) found +[9132] Forked 28682 +[9131] Forked 28683 +(28682) found +(28683) found +[9130] Forked 28684 +[9129] Forked 28685 +(28684) found +(28685) found +[9128] Forked 28686 +[9127] Forked 28687 +(28686) found +(28687) found +[9126] Forked 28688 +[9125] Forked 28689 +(28688) found +(28689) found +[9124] Forked 28690 +[9123] Forked 28691 +(28690) found +(28691) found +[9122] Forked 28692 +[9121] Forked 28693 +(28692) found +(28693) found +[9120] Forked 28694 +[9119] Forked 28696 +(28694) found +(28696) found +[9118] Forked 28697 +[9117] Forked 28698 +(28697) found +(28698) found +[9116] Forked 28699 +[9115] Forked 28700 +(28699) found +(28700) found +[9114] Forked 28701 +[9113] Forked 28702 +(28701) found +(28702) found +[9112] Forked 28703 +[9111] Forked 28704 +(28703) found +(28704) found +[9110] Forked 28705 +[9109] Forked 28706 +(28705) found +(28706) found +[9108] Forked 28707 +[9107] Forked 28708 +(28707) found +(28708) found +[9106] Forked 28709 +[9105] Forked 28710 +(28709) found +(28710) found +[9104] Forked 28711 +[9103] Forked 28712 +(28711) found +(28712) found +[9102] Forked 28713 +[9101] Forked 28714 +(28713) found +(28714) found +[9100] Forked 28715 +[9099] Forked 28716 +(28715) found +(28716) found +[9098] Forked 28717 +[9097] Forked 28718 +(28717) found +(28718) found +[9096] Forked 28719 +[9095] Forked 28720 +(28719) found +(28720) found +[9094] Forked 28721 +[9093] Forked 28722 +(28721) found +(28722) found +[9092] Forked 28723 +[9091] Forked 28724 +(28723) found +(28724) found +[9090] Forked 28725 +(28725) found +[9089] Forked 28726 +(28726) found +[9088] Forked 28727 +(28727) found +[9087] Forked 28728 +(28728) found +[9086] Forked 28729 +(28729) found +[9085] Forked 28730 +(28730) found +[9084] Forked 28731 +(28731) found +[9083] Forked 28732 +(28732) found +[9082] Forked 28733 +(28733) found +[9081] Forked 28734 +(28734) found +[9080] Forked 28735 +(28735) found +[9079] Forked 28736 +(28736) found +[9078] Forked 28737 +(28737) found +[9077] Forked 28738 +(28738) found +[9076] Forked 28739 +(28739) found +[9075] Forked 28740 +(28740) found +[9074] Forked 28741 +(28741) found +[9073] Forked 28742 +(28742) found +[9072] Forked 28743 +(28743) found +[9071] Forked 28744 +(28744) found +[9070] Forked 28745 +(28745) found +[9069] Forked 28746 +(28746) found +[9068] Forked 28747 +(28747) found +[9067] Forked 28748 +(28748) found +[9066] Forked 28749 +(28749) found +[9065] Forked 28750 +(28750) found +[9064] Forked 28751 +(28751) found +[9063] Forked 28752 +(28752) found +[9062] Forked 28753 +(28753) found +[9061] Forked 28754 +(28754) found +[9060] Forked 28755 +(28755) found +[9059] Forked 28756 +(28756) found +[9058] Forked 28757 +(28757) found +[9057] Forked 28758 +(28758) found +[9056] Forked 28759 +(28759) found +[9055] Forked 28760 +(28760) found +[9054] Forked 28761 +(28761) found +[9053] Forked 28762 +[9052] Forked 28763 +(28762) found +(28763) found +[9051] Forked 28764 +[9050] Forked 28765 +(28764) found +(28765) found +[9049] Forked 28766 +[9048] Forked 28767 +(28767) found +(28766) found +[9047] Forked 28768 +(28768) found +[9046] Forked 28769 +(28769) found +[9045] Forked 28770 +(28770) found +[9044] Forked 28771 +(28771) found +[9043] Forked 28772 +(28772) found +[9042] Forked 28773 +(28773) found +[9041] Forked 28774 +(28774) found +[9040] Forked 28775 +(28775) found +[9039] Forked 28776 +(28776) found +[9038] Forked 28777 +(28777) found +[9037] Forked 28778 +(28778) found +[9036] Forked 28779 +(28779) found +[9035] Forked 28780 +(28780) found +[9034] Forked 28781 +(28781) found +[9033] Forked 28782 +(28782) found +[9032] Forked 28783 +(28783) found +[9031] Forked 28784 +(28784) found +[9030] Forked 28785 +(28785) found +[9029] Forked 28786 +(28786) found +[9028] Forked 28787 +(28787) found +[9027] Forked 28788 +(28788) found +[9026] Forked 28789 +(28789) found +[9025] Forked 28790 +(28790) found +[9024] Forked 28791 +(28791) found +[9023] Forked 28792 +(28792) found +[9022] Forked 28793 +(28793) found +[9021] Forked 28794 +(28794) found +[9020] Forked 28795 +(28795) found +[9019] Forked 28796 +(28796) found +[9018] Forked 28797 +(28797) found +[9017] Forked 28798 +(28798) found +[9016] Forked 28799 +(28799) found +[9015] Forked 28800 +(28800) found +[9014] Forked 28801 +(28801) found +[9013] Forked 28802 +(28802) found +[9012] Forked 28803 +(28803) found +[9011] Forked 28804 +(28804) found +[9010] Forked 28805 +(28805) found +[9009] Forked 28806 +(28806) found +[9008] Forked 28807 +(28807) found +[9007] Forked 28808 +(28808) found +[9006] Forked 28809 +(28809) found +[9005] Forked 28810 +(28810) found +[9004] Forked 28811 +(28811) found +[9003] Forked 28812 +(28812) found +[9002] Forked 28813 +(28813) found +[9001] Forked 28814 +(28814) found +[9000] Forked 28815 +(28815) found +[8999] Forked 28816 +(28816) found +[8998] Forked 28817 +(28817) found +[8997] Forked 28818 +(28818) found +[8996] Forked 28819 +(28819) found +[8995] Forked 28820 +(28820) found +[8994] Forked 28821 +(28821) found +[8993] Forked 28822 +(28822) found +[8992] Forked 28823 +(28823) found +[8991] Forked 28824 +(28824) found +[8990] Forked 28825 +(28825) found +[8989] Forked 28826 +(28826) found +[8988] Forked 28827 +(28827) found +[8987] Forked 28828 +(28828) found +[8986] Forked 28829 +(28829) found +[8985] Forked 28830 +(28830) found +[8984] Forked 28831 +(28831) found +[8983] Forked 28832 +(28832) found +[8982] Forked 28833 +[8981] Forked 28834 +(28833) found +(28834) found +[8980] Forked 28835 +[8979] Forked 28836 +(28835) found +(28836) found +[8978] Forked 28837 +[8977] Forked 28838 +(28837) found +(28838) found +[8976] Forked 28839 +[8975] Forked 28840 +(28840) found +(28839) found +[8974] Forked 28841 +(28841) found +[8973] Forked 28842 +(28842) found +[8972] Forked 28843 +(28843) found +[8971] Forked 28844 +(28844) found +[8970] Forked 28845 +(28845) found +[8969] Forked 28846 +(28846) found +[8968] Forked 28847 +(28847) found +[8967] Forked 28848 +(28848) found +[8966] Forked 28849 +(28849) found +[8965] Forked 28850 +(28850) found +[8964] Forked 28851 +(28851) found +[8963] Forked 28852 +(28852) found +[8962] Forked 28853 +(28853) found +[8961] Forked 28854 +(28854) found +[8960] Forked 28855 +(28855) found +[8959] Forked 28856 +(28856) found +[8958] Forked 28857 +(28857) found +[8957] Forked 28858 +(28858) found +[8956] Forked 28859 +(28859) found +[8955] Forked 28860 +(28860) found +[8954] Forked 28861 +(28861) found +[8953] Forked 28862 +(28862) found +[8952] Forked 28863 +(28863) found +[8951] Forked 28864 +(28864) found +[8950] Forked 28865 +(28865) found +[8949] Forked 28866 +(28866) found +[8948] Forked 28867 +(28867) found +[8947] Forked 28868 +(28868) found +[8946] Forked 28869 +(28869) found +[8945] Forked 28870 +(28870) found +[8944] Forked 28871 +(28871) found +[8943] Forked 28872 +(28872) found +[8942] Forked 28873 +(28873) found +[8941] Forked 28874 +(28874) found +[8940] Forked 28875 +(28875) found +[8939] Forked 28876 +(28876) found +[8938] Forked 28877 +(28877) found +[8937] Forked 28878 +(28878) found +[8936] Forked 28879 +(28879) found +[8935] Forked 28880 +(28880) found +[8934] Forked 28881 +(28881) found +[8933] Forked 28882 +(28882) found +[8932] Forked 28883 +(28883) found +[8931] Forked 28884 +(28884) found +[8930] Forked 28885 +(28885) found +[8929] Forked 28886 +(28886) found +[8928] Forked 28887 +(28887) found +[8927] Forked 28888 +(28888) found +[8926] Forked 28889 +(28889) found +[8925] Forked 28890 +(28890) found +[8924] Forked 28891 +(28891) found +[8923] Forked 28892 +(28892) found +[8922] Forked 28893 +(28893) found +[8921] Forked 28894 +(28894) found +[8920] Forked 28895 +(28895) found +[8919] Forked 28896 +(28896) found +[8918] Forked 28897 +(28897) found +[8917] Forked 28898 +(28898) found +[8916] Forked 28899 +(28899) found +[8915] Forked 28900 +(28900) found +[8914] Forked 28901 +[8913] Forked 28902 +(28901) found +(28902) found +[8912] Forked 28903 +[8911] Forked 28904 +(28903) found +(28904) found +[8910] Forked 28905 +[8909] Forked 28906 +(28905) found +(28906) found +[8908] Forked 28907 +[8907] Forked 28908 +(28907) found +(28908) found +[8906] Forked 28909 +[8905] Forked 28910 +(28909) found +(28910) found +[8904] Forked 28911 +[8903] Forked 28912 +(28911) found +(28912) found +[8902] Forked 28913 +[8901] Forked 28914 +(28913) found +(28914) found +[8900] Forked 28915 +[8899] Forked 28916 +(28915) found +(28916) found +[8898] Forked 28917 +[8897] Forked 28918 +(28917) found +(28918) found +[8896] Forked 28919 +[8895] Forked 28920 +(28919) found +(28920) found +[8894] Forked 28921 +(28921) found +[8893] Forked 28922 +(28922) found +[8892] Forked 28923 +[8891] Forked 28924 +(28923) found +(28924) found +[8890] Forked 28925 +[8889] Forked 28926 +(28925) found +(28926) found +[8888] Forked 28927 +[8887] Forked 28928 +(28927) found +(28928) found +[8886] Forked 28929 +[8885] Forked 28930 +(28929) found +(28930) found +[8884] Forked 28931 +[8883] Forked 28932 +(28931) found +(28932) found +[8882] Forked 28933 +[8881] Forked 28934 +(28933) found +(28934) found +[8880] Forked 28935 +[8879] Forked 28936 +(28935) found +(28936) found +[8878] Forked 28937 +[8877] Forked 28938 +(28937) found +(28938) found +[8876] Forked 28939 +[8875] Forked 28940 +(28939) found +(28940) found +[8874] Forked 28941 +[8873] Forked 28942 +(28941) found +(28942) found +[8872] Forked 28943 +[8871] Forked 28944 +(28943) found +(28944) found +[8870] Forked 28945 +(28945) found +[8869] Forked 28946 +(28946) found +[8868] Forked 28947 +(28947) found +[8867] Forked 28948 +(28948) found +[8866] Forked 28949 +(28949) found +[8865] Forked 28950 +(28950) found +[8864] Forked 28951 +(28951) found +[8863] Forked 28952 +(28952) found +[8862] Forked 28953 +(28953) found +[8861] Forked 28954 +(28954) found +[8860] Forked 28955 +(28955) found +[8859] Forked 28956 +(28956) found +[8858] Forked 28957 +(28957) found +[8857] Forked 28958 +(28958) found +[8856] Forked 28959 +(28959) found +[8855] Forked 28960 +(28960) found +[8854] Forked 28961 +(28961) found +[8853] Forked 28962 +(28962) found +[8852] Forked 28963 +(28963) found +[8851] Forked 28964 +(28964) found +[8850] Forked 28965 +(28965) found +[8849] Forked 28966 +(28966) found +[8848] Forked 28967 +(28967) found +[8847] Forked 28968 +(28968) found +[8846] Forked 28969 +(28969) found +[8845] Forked 28970 +(28970) found +[8844] Forked 28971 +(28971) found +[8843] Forked 28972 +(28972) found +[8842] Forked 28973 +(28973) found +[8841] Forked 28974 +(28974) found +[8840] Forked 28975 +(28975) found +[8839] Forked 28976 +(28976) found +[8838] Forked 28977 +(28977) found +[8837] Forked 28978 +(28978) found +[8836] Forked 28979 +(28979) found +[8835] Forked 28980 +(28980) found +[8834] Forked 28981 +(28981) found +[8833] Forked 28982 +[8832] Forked 28983 +(28983) found +(28982) found +[8831] Forked 28984 +(28984) found +[8830] Forked 28985 +(28985) found +[8829] Forked 28986 +(28986) found +[8828] Forked 28987 +(28987) found +[8827] Forked 28988 +(28988) found +[8826] Forked 28989 +(28989) found +[8825] Forked 28990 +(28990) found +[8824] Forked 28991 +(28991) found +[8823] Forked 28992 +(28992) found +[8822] Forked 28993 +(28993) found +[8821] Forked 28994 +(28994) found +[8820] Forked 28995 +(28995) found +[8819] Forked 28996 +(28996) found +[8818] Forked 28997 +(28997) found +[8817] Forked 28998 +(28998) found +[8816] Forked 28999 +(28999) found +[8815] Forked 29000 +(29000) found +[8814] Forked 29001 +(29001) found +[8813] Forked 29002 +(29002) found +[8812] Forked 29003 +(29003) found +[8811] Forked 29004 +(29004) found +[8810] Forked 29005 +(29005) found +[8809] Forked 29006 +(29006) found +[8808] Forked 29007 +(29007) found +[8807] Forked 29008 +(29008) found +[8806] Forked 29009 +(29009) found +[8805] Forked 29010 +(29010) found +[8804] Forked 29011 +(29011) found +[8803] Forked 29012 +(29012) found +[8802] Forked 29013 +(29013) found +[8801] Forked 29014 +(29014) found +[8800] Forked 29015 +(29015) found +[8799] Forked 29016 +(29016) found +[8798] Forked 29017 +(29017) found +[8797] Forked 29018 +(29018) found +[8796] Forked 29019 +(29019) found +[8795] Forked 29020 +(29020) found +[8794] Forked 29021 +(29021) found +[8793] Forked 29022 +(29022) found +[8792] Forked 29023 +(29023) found +[8791] Forked 29024 +(29024) found +[8790] Forked 29025 +(29025) found +[8789] Forked 29026 +(29026) found +[8788] Forked 29027 +(29027) found +[8787] Forked 29028 +(29028) found +[8786] Forked 29029 +(29029) found +[8785] Forked 29030 +(29030) found +[8784] Forked 29031 +(29031) found +[8783] Forked 29032 +(29032) found +[8782] Forked 29033 +(29033) found +[8781] Forked 29034 +(29034) found +[8780] Forked 29035 +(29035) found +[8779] Forked 29036 +(29036) found +[8778] Forked 29037 +(29037) found +[8777] Forked 29038 +(29038) found +[8776] Forked 29039 +(29039) found +[8775] Forked 29040 +(29040) found +[8774] Forked 29041 +(29041) found +[8773] Forked 29042 +(29042) found +[8772] Forked 29043 +(29043) found +[8771] Forked 29044 +(29044) found +[8770] Forked 29045 +(29045) found +[8769] Forked 29046 +(29046) found +[8768] Forked 29047 +(29047) found +[8767] Forked 29048 +(29048) found +[8766] Forked 29049 +(29049) found +[8765] Forked 29050 +(29050) found +[8764] Forked 29051 +(29051) found +[8763] Forked 29052 +[8762] Forked 29053 +(29052) found +(29053) found +[8761] Forked 29054 +[8760] Forked 29055 +(29054) found +(29055) found +[8759] Forked 29056 +[8758] Forked 29057 +(29056) found +(29057) found +[8757] Forked 29058 +[8756] Forked 29059 +(29058) found +(29059) found +[8755] Forked 29060 +[8754] Forked 29061 +(29060) found +(29061) found +[8753] Forked 29062 +[8752] Forked 29063 +(29062) found +(29063) found +[8751] Forked 29064 +[8750] Forked 29065 +(29064) found +(29065) found +[8749] Forked 29066 +[8748] Forked 29067 +(29066) found +(29067) found +[8747] Forked 29068 +[8746] Forked 29069 +(29068) found +(29069) found +[8745] Forked 29070 +[8744] Forked 29071 +(29070) found +(29071) found +[8743] Forked 29072 +[8742] Forked 29073 +(29072) found +(29073) found +[8741] Forked 29074 +[8740] Forked 29075 +(29074) found +(29075) found +[8739] Forked 29076 +[8738] Forked 29077 +(29076) found +(29077) found +[8737] Forked 29078 +[8736] Forked 29079 +(29078) found +(29079) found +[8735] Forked 29080 +[8734] Forked 29081 +(29080) found +(29081) found +[8733] Forked 29082 +[8732] Forked 29083 +(29082) found +(29083) found +[8731] Forked 29084 +[8730] Forked 29085 +(29084) found +(29085) found +[8729] Forked 29086 +[8728] Forked 29087 +(29086) found +(29087) found +[8727] Forked 29088 +[8726] Forked 29089 +(29088) found +(29089) found +[8725] Forked 29090 +[8724] Forked 29091 +(29090) found +(29091) found +[8723] Forked 29092 +[8722] Forked 29093 +(29092) found +(29093) found +[8721] Forked 29094 +[8720] Forked 29095 +(29094) found +(29095) found +[8719] Forked 29096 +[8718] Forked 29097 +(29096) found +(29097) found +[8717] Forked 29098 +[8716] Forked 29099 +(29098) found +(29099) found +[8715] Forked 29100 +[8714] Forked 29101 +(29100) found +(29101) found +[8713] Forked 29102 +[8712] Forked 29103 +(29102) found +(29103) found +[8711] Forked 29104 +[8710] Forked 29105 +(29104) found +(29105) found +[8709] Forked 29106 +[8708] Forked 29107 +(29106) found +(29107) found +[8707] Forked 29108 +[8706] Forked 29109 +(29108) found +(29109) found +[8705] Forked 29110 +[8704] Forked 29111 +(29110) found +(29111) found +[8703] Forked 29112 +[8702] Forked 29113 +(29112) found +(29113) found +[8701] Forked 29114 +[8700] Forked 29115 +(29114) found +(29115) found +[8699] Forked 29116 +[8698] Forked 29117 +(29116) found +(29117) found +[8697] Forked 29118 +[8696] Forked 29119 +(29118) found +(29119) found +[8695] Forked 29120 +[8694] Forked 29122 +(29120) found +(29122) found +[8693] Forked 29123 +(29123) found +[8692] Forked 29124 +(29124) found +[8691] Forked 29125 +(29125) found +[8690] Forked 29126 +(29126) found +[8689] Forked 29127 +(29127) found +[8688] Forked 29128 +(29128) found +[8687] Forked 29129 +(29129) found +[8686] Forked 29130 +(29130) found +[8685] Forked 29131 +(29131) found +[8684] Forked 29132 +(29132) found +[8683] Forked 29133 +(29133) found +[8682] Forked 29134 +(29134) found +[8681] Forked 29135 +(29135) found +[8680] Forked 29136 +(29136) found +[8679] Forked 29137 +(29137) found +[8678] Forked 29138 +(29138) found +[8677] Forked 29139 +(29139) found +[8676] Forked 29140 +(29140) found +[8675] Forked 29141 +(29141) found +[8674] Forked 29142 +(29142) found +[8673] Forked 29143 +(29143) found +[8672] Forked 29144 +(29144) found +[8671] Forked 29145 +(29145) found +[8670] Forked 29146 +(29146) found +[8669] Forked 29147 +(29147) found +[8668] Forked 29148 +(29148) found +[8667] Forked 29149 +(29149) found +[8666] Forked 29150 +(29150) found +[8665] Forked 29151 +(29151) found +[8664] Forked 29152 +(29152) found +[8663] Forked 29153 +(29153) found +[8662] Forked 29154 +(29154) found +[8661] Forked 29155 +(29155) found +[8660] Forked 29156 +(29156) found +[8659] Forked 29157 +(29157) found +[8658] Forked 29158 +(29158) found +[8657] Forked 29159 +(29159) found +[8656] Forked 29160 +(29160) found +[8655] Forked 29161 +(29161) found +[8654] Forked 29162 +(29162) found +[8653] Forked 29163 +(29163) found +[8652] Forked 29164 +(29164) found +[8651] Forked 29165 +(29165) found +[8650] Forked 29166 +(29166) found +[8649] Forked 29167 +(29167) found +[8648] Forked 29168 +(29168) found +[8647] Forked 29169 +(29169) found +[8646] Forked 29170 +(29170) found +[8645] Forked 29171 +(29171) found +[8644] Forked 29172 +(29172) found +[8643] Forked 29173 +(29173) found +[8642] Forked 29174 +[8641] Forked 29175 +(29174) found +(29175) found +[8640] Forked 29176 +[8639] Forked 29177 +(29176) found +(29177) found +[8638] Forked 29178 +[8637] Forked 29179 +(29178) found +(29179) found +[8636] Forked 29180 +[8635] Forked 29181 +(29180) found +(29181) found +[8634] Forked 29182 +[8633] Forked 29183 +(29182) found +(29183) found +[8632] Forked 29184 +[8631] Forked 29185 +(29184) found +(29185) found +[8630] Forked 29186 +[8629] Forked 29187 +(29186) found +(29187) found +[8628] Forked 29188 +[8627] Forked 29189 +(29188) found +(29189) found +[8626] Forked 29190 +[8625] Forked 29191 +(29190) found +(29191) found +[8624] Forked 29192 +[8623] Forked 29193 +(29192) found +(29193) found +[8622] Forked 29194 +[8621] Forked 29195 +(29194) found +(29195) found +[8620] Forked 29196 +[8619] Forked 29197 +(29196) found +(29197) found +[8618] Forked 29198 +[8617] Forked 29199 +(29198) found +(29199) found +[8616] Forked 29200 +[8615] Forked 29201 +(29200) found +(29201) found +[8614] Forked 29202 +[8613] Forked 29203 +(29202) found +(29203) found +[8612] Forked 29204 +[8611] Forked 29205 +(29204) found +(29205) found +[8610] Forked 29206 +[8609] Forked 29207 +(29206) found +(29207) found +[8608] Forked 29208 +[8607] Forked 29209 +(29208) found +(29209) found +[8606] Forked 29210 +[8605] Forked 29211 +(29210) found +(29211) found +[8604] Forked 29212 +[8603] Forked 29213 +(29212) found +(29213) found +[8602] Forked 29214 +[8601] Forked 29215 +(29214) found +(29215) found +[8600] Forked 29216 +[8599] Forked 29217 +(29216) found +(29217) found +[8598] Forked 29218 +[8597] Forked 29219 +(29218) found +(29219) found +[8596] Forked 29220 +[8595] Forked 29221 +(29220) found +(29221) found +[8594] Forked 29222 +[8593] Forked 29223 +(29222) found +(29223) found +[8592] Forked 29224 +[8591] Forked 29225 +(29224) found +(29225) found +[8590] Forked 29226 +[8589] Forked 29227 +(29226) found +(29227) found +[8588] Forked 29228 +[8587] Forked 29229 +(29228) found +(29229) found +[8586] Forked 29230 +[8585] Forked 29231 +(29230) found +(29231) found +[8584] Forked 29232 +[8583] Forked 29233 +(29232) found +(29233) found +[8582] Forked 29234 +[8581] Forked 29235 +(29234) found +(29235) found +[8580] Forked 29236 +[8579] Forked 29237 +(29236) found +(29237) found +[8578] Forked 29238 +[8577] Forked 29239 +(29238) found +(29239) found +[8576] Forked 29240 +[8575] Forked 29241 +(29240) found +(29241) found +[8574] Forked 29242 +[8573] Forked 29243 +(29242) found +(29243) found +[8572] Forked 29244 +[8571] Forked 29245 +(29244) found +(29245) found +[8570] Forked 29246 +[8569] Forked 29247 +(29246) found +(29247) found +[8568] Forked 29248 +[8567] Forked 29249 +(29248) found +(29249) found +[8566] Forked 29250 +[8565] Forked 29251 +(29250) found +(29251) found +[8564] Forked 29252 +[8563] Forked 29253 +(29252) found +(29253) found +[8562] Forked 29254 +[8561] Forked 29255 +(29254) found +(29255) found +[8560] Forked 29256 +[8559] Forked 29257 +(29256) found +(29257) found +[8558] Forked 29258 +[8557] Forked 29259 +(29258) found +(29259) found +[8556] Forked 29260 +[8555] Forked 29261 +(29260) found +(29261) found +[8554] Forked 29262 +[8553] Forked 29263 +(29262) found +(29263) found +[8552] Forked 29264 +[8551] Forked 29265 +(29264) found +(29265) found +[8550] Forked 29266 +(29266) found +[8549] Forked 29267 +(29267) found +[8548] Forked 29268 +(29268) found +[8547] Forked 29269 +(29269) found +[8546] Forked 29270 +(29270) found +[8545] Forked 29271 +(29271) found +[8544] Forked 29272 +(29272) found +[8543] Forked 29273 +(29273) found +[8542] Forked 29274 +(29274) found +[8541] Forked 29275 +(29275) found +[8540] Forked 29276 +(29276) found +[8539] Forked 29277 +(29277) found +[8538] Forked 29278 +(29278) found +[8537] Forked 29279 +(29279) found +[8536] Forked 29280 +(29280) found +[8535] Forked 29281 +(29281) found +[8534] Forked 29282 +(29282) found +[8533] Forked 29283 +(29283) found +[8532] Forked 29284 +(29284) found +[8531] Forked 29285 +(29285) found +[8530] Forked 29286 +(29286) found +[8529] Forked 29287 +(29287) found +[8528] Forked 29288 +(29288) found +[8527] Forked 29289 +(29289) found +[8526] Forked 29290 +(29290) found +[8525] Forked 29291 +(29291) found +[8524] Forked 29292 +(29292) found +[8523] Forked 29293 +(29293) found +[8522] Forked 29294 +(29294) found +[8521] Forked 29295 +(29295) found +[8520] Forked 29296 +(29296) found +[8519] Forked 29297 +(29297) found +[8518] Forked 29298 +(29298) found +[8517] Forked 29299 +(29299) found +[8516] Forked 29300 +(29300) found +[8515] Forked 29301 +(29301) found +[8514] Forked 29302 +[8513] Forked 29303 +(29302) found +(29303) found +[8512] Forked 29304 +[8511] Forked 29305 +(29304) found +(29305) found +[8510] Forked 29306 +[8509] Forked 29307 +(29306) found +(29307) found +[8508] Forked 29308 +[8507] Forked 29309 +(29308) found +(29309) found +[8506] Forked 29310 +[8505] Forked 29311 +(29310) found +(29311) found +[8504] Forked 29312 +[8503] Forked 29313 +(29312) found +(29313) found +[8502] Forked 29314 +[8501] Forked 29315 +(29314) found +(29315) found +[8500] Forked 29316 +(29316) found +[8499] Forked 29317 +[8498] Forked 29318 +(29317) found +(29318) found +[8497] Forked 29319 +[8496] Forked 29320 +(29319) found +(29320) found +[8495] Forked 29321 +[8494] Forked 29322 +(29321) found +(29322) found +[8493] Forked 29323 +[8492] Forked 29324 +(29323) found +(29324) found +[8491] Forked 29325 +[8490] Forked 29326 +(29325) found +(29326) found +[8489] Forked 29327 +[8488] Forked 29328 +(29327) found +(29328) found +[8487] Forked 29329 +[8486] Forked 29330 +(29329) found +(29330) found +[8485] Forked 29331 +[8484] Forked 29332 +(29331) found +(29332) found +[8483] Forked 29333 +[8482] Forked 29334 +(29333) found +(29334) found +[8481] Forked 29335 +[8480] Forked 29336 +(29335) found +(29336) found +[8479] Forked 29337 +[8478] Forked 29338 +(29337) found +(29338) found +[8477] Forked 29339 +[8476] Forked 29340 +(29339) found +(29340) found +[8475] Forked 29341 +[8474] Forked 29342 +(29341) found +(29342) found +[8473] Forked 29343 +[8472] Forked 29344 +(29343) found +(29344) found +[8471] Forked 29345 +[8470] Forked 29346 +(29345) found +(29346) found +[8469] Forked 29347 +[8468] Forked 29348 +(29347) found +(29348) found +[8467] Forked 29349 +[8466] Forked 29350 +(29349) found +(29350) found +[8465] Forked 29351 +[8464] Forked 29352 +(29351) found +(29352) found +[8463] Forked 29353 +[8462] Forked 29354 +(29353) found +(29354) found +[8461] Forked 29355 +[8460] Forked 29356 +(29355) found +(29356) found +[8459] Forked 29357 +[8458] Forked 29358 +(29357) found +(29358) found +[8457] Forked 29359 +[8456] Forked 29360 +(29359) found +(29360) found +[8455] Forked 29361 +[8454] Forked 29362 +(29361) found +(29362) found +[8453] Forked 29363 +[8452] Forked 29364 +(29363) found +(29364) found +[8451] Forked 29365 +[8450] Forked 29366 +(29365) found +(29366) found +[8449] Forked 29367 +[8448] Forked 29368 +(29367) found +(29368) found +[8447] Forked 29369 +[8446] Forked 29370 +(29369) found +(29370) found +[8445] Forked 29371 +[8444] Forked 29372 +(29371) found +(29372) found +[8443] Forked 29373 +[8442] Forked 29374 +(29373) found +(29374) found +[8441] Forked 29375 +[8440] Forked 29376 +(29375) found +(29376) found +[8439] Forked 29377 +[8438] Forked 29378 +(29377) found +(29378) found +[8437] Forked 29379 +[8436] Forked 29380 +(29379) found +(29380) found +[8435] Forked 29381 +[8434] Forked 29382 +(29381) found +(29382) found +[8433] Forked 29383 +[8432] Forked 29384 +(29383) found +(29384) found +[8431] Forked 29385 +[8430] Forked 29386 +(29385) found +(29386) found +[8429] Forked 29387 +[8428] Forked 29388 +(29387) found +(29388) found +[8427] Forked 29389 +[8426] Forked 29390 +(29389) found +(29390) found +[8425] Forked 29391 +[8424] Forked 29392 +(29391) found +(29392) found +[8423] Forked 29393 +[8422] Forked 29394 +(29393) found +(29394) found +[8421] Forked 29395 +[8420] Forked 29396 +(29395) found +(29396) found +[8419] Forked 29397 +[8418] Forked 29398 +(29397) found +(29398) found +[8417] Forked 29399 +[8416] Forked 29400 +(29399) found +(29400) found +[8415] Forked 29401 +[8414] Forked 29402 +(29401) found +(29402) found +[8413] Forked 29403 +[8412] Forked 29404 +(29403) found +(29404) found +[8411] Forked 29405 +[8410] Forked 29406 +(29405) found +(29406) found +[8409] Forked 29407 +[8408] Forked 29408 +(29407) found +(29408) found +[8407] Forked 29409 +[8406] Forked 29410 +(29409) found +(29410) found +[8405] Forked 29411 +[8404] Forked 29412 +(29411) found +(29412) found +[8403] Forked 29413 +[8402] Forked 29414 +(29413) found +(29414) found +[8401] Forked 29415 +[8400] Forked 29416 +(29415) found +(29416) found +[8399] Forked 29417 +[8398] Forked 29418 +(29417) found +(29418) found +[8397] Forked 29419 +[8396] Forked 29420 +(29419) found +(29420) found +[8395] Forked 29421 +[8394] Forked 29422 +(29421) found +(29422) found +[8393] Forked 29423 +[8392] Forked 29424 +(29423) found +(29424) found +[8391] Forked 29425 +[8390] Forked 29426 +(29425) found +(29426) found +[8389] Forked 29427 +[8388] Forked 29428 +(29427) found +(29428) found +[8387] Forked 29429 +[8386] Forked 29430 +(29429) found +(29430) found +[8385] Forked 29431 +[8384] Forked 29432 +(29431) found +(29432) found +[8383] Forked 29433 +[8382] Forked 29434 +(29433) found +(29434) found +[8381] Forked 29435 +(29435) found +[8380] Forked 29436 +(29436) found +[8379] Forked 29437 +(29437) found +[8378] Forked 29438 +(29438) found +[8377] Forked 29439 +(29439) found +[8376] Forked 29440 +(29440) found +[8375] Forked 29441 +(29441) found +[8374] Forked 29442 +(29442) found +[8373] Forked 29443 +(29443) found +[8372] Forked 29444 +(29444) found +[8371] Forked 29445 +(29445) found +[8370] Forked 29446 +(29446) found +[8369] Forked 29447 +(29447) found +[8368] Forked 29448 +(29448) found +[8367] Forked 29449 +(29449) found +[8366] Forked 29450 +(29450) found +[8365] Forked 29451 +(29451) found +[8364] Forked 29452 +(29452) found +[8363] Forked 29453 +(29453) found +[8362] Forked 29454 +(29454) found +[8361] Forked 29455 +(29455) found +[8360] Forked 29456 +(29456) found +[8359] Forked 29457 +(29457) found +[8358] Forked 29458 +(29458) found +[8357] Forked 29459 +(29459) found +[8356] Forked 29460 +(29460) found +[8355] Forked 29461 +(29461) found +[8354] Forked 29462 +(29462) found +[8353] Forked 29463 +(29463) found +[8352] Forked 29464 +(29464) found +[8351] Forked 29465 +(29465) found +[8350] Forked 29466 +(29466) found +[8349] Forked 29467 +(29467) found +[8348] Forked 29468 +(29468) found +[8347] Forked 29469 +(29469) found +[8346] Forked 29470 +(29470) found +[8345] Forked 29471 +(29471) found +[8344] Forked 29472 +(29472) found +[8343] Forked 29473 +[8342] Forked 29474 +(29473) found +(29474) found +[8341] Forked 29475 +[8340] Forked 29476 +(29475) found +(29476) found +[8339] Forked 29477 +[8338] Forked 29478 +(29477) found +(29478) found +[8337] Forked 29479 +[8336] Forked 29480 +(29479) found +(29480) found +[8335] Forked 29481 +[8334] Forked 29482 +(29481) found +(29482) found +[8333] Forked 29483 +[8332] Forked 29484 +(29483) found +(29484) found +[8331] Forked 29485 +[8330] Forked 29486 +(29485) found +(29486) found +[8329] Forked 29487 +[8328] Forked 29488 +(29487) found +(29488) found +[8327] Forked 29489 +[8326] Forked 29490 +(29489) found +(29490) found +[8325] Forked 29491 +[8324] Forked 29492 +(29491) found +(29492) found +[8323] Forked 29493 +[8322] Forked 29494 +(29493) found +(29494) found +[8321] Forked 29495 +[8320] Forked 29496 +(29495) found +(29496) found +[8319] Forked 29497 +[8318] Forked 29498 +(29497) found +(29498) found +[8317] Forked 29499 +[8316] Forked 29500 +(29499) found +(29500) found +[8315] Forked 29501 +[8314] Forked 29502 +(29501) found +(29502) found +[8313] Forked 29503 +[8312] Forked 29504 +(29503) found +(29504) found +[8311] Forked 29505 +[8310] Forked 29506 +(29505) found +(29506) found +[8309] Forked 29507 +[8308] Forked 29508 +(29507) found +(29508) found +[8307] Forked 29509 +[8306] Forked 29510 +(29509) found +(29510) found +[8305] Forked 29511 +[8304] Forked 29512 +(29511) found +(29512) found +[8303] Forked 29513 +[8302] Forked 29514 +(29513) found +(29514) found +[8301] Forked 29515 +[8300] Forked 29516 +(29515) found +(29516) found +[8299] Forked 29517 +(29517) found +[8298] Forked 29518 +(29518) found +[8297] Forked 29519 +(29519) found +[8296] Forked 29520 +(29520) found +[8295] Forked 29521 +(29521) found +[8294] Forked 29522 +(29522) found +[8293] Forked 29523 +(29523) found +[8292] Forked 29524 +(29524) found +[8291] Forked 29525 +(29525) found +[8290] Forked 29526 +(29526) found +[8289] Forked 29527 +(29527) found +[8288] Forked 29528 +(29528) found +[8287] Forked 29529 +(29529) found +[8286] Forked 29530 +(29530) found +[8285] Forked 29531 +(29531) found +[8284] Forked 29532 +(29532) found +[8283] Forked 29533 +(29533) found +[8282] Forked 29534 +(29534) found +[8281] Forked 29535 +(29535) found +[8280] Forked 29536 +(29536) found +[8279] Forked 29537 +(29537) found +[8278] Forked 29538 +(29538) found +[8277] Forked 29539 +(29539) found +[8276] Forked 29540 +(29540) found +[8275] Forked 29541 +(29541) found +[8274] Forked 29542 +(29542) found +[8273] Forked 29543 +(29543) found +[8272] Forked 29544 +(29544) found +[8271] Forked 29545 +(29545) found +[8270] Forked 29546 +(29546) found +[8269] Forked 29547 +(29547) found +[8268] Forked 29548 +(29548) found +[8267] Forked 29549 +(29549) found +[8266] Forked 29550 +(29550) found +[8265] Forked 29551 +(29551) found +[8264] Forked 29552 +(29552) found +[8263] Forked 29553 +(29553) found +[8262] Forked 29554 +(29554) found +[8261] Forked 29555 +(29555) found +[8260] Forked 29556 +[8259] Forked 29557 +(29556) found +(29557) found +[8258] Forked 29558 +[8257] Forked 29559 +(29558) found +(29559) found +[8256] Forked 29560 +[8255] Forked 29561 +(29560) found +(29561) found +[8254] Forked 29562 +[8253] Forked 29563 +(29562) found +(29563) found +[8252] Forked 29564 +[8251] Forked 29565 +(29564) found +(29565) found +[8250] Forked 29566 +[8249] Forked 29567 +(29566) found +(29567) found +[8248] Forked 29568 +[8247] Forked 29569 +(29568) found +(29569) found +[8246] Forked 29570 +[8245] Forked 29571 +(29570) found +(29571) found +[8244] Forked 29572 +[8243] Forked 29573 +(29572) found +(29573) found +[8242] Forked 29574 +[8241] Forked 29575 +(29574) found +(29575) found +[8240] Forked 29576 +[8239] Forked 29577 +(29576) found +(29577) found +[8238] Forked 29578 +[8237] Forked 29579 +(29578) found +(29579) found +[8236] Forked 29580 +[8235] Forked 29581 +(29580) found +(29581) found +[8234] Forked 29582 +[8233] Forked 29583 +(29582) found +(29583) found +[8232] Forked 29584 +[8231] Forked 29585 +(29584) found +(29585) found +[8230] Forked 29586 +[8229] Forked 29587 +(29586) found +(29587) found +[8228] Forked 29588 +[8227] Forked 29589 +(29588) found +(29589) found +[8226] Forked 29590 +[8225] Forked 29591 +(29590) found +(29591) found +[8224] Forked 29592 +[8223] Forked 29593 +(29592) found +(29593) found +[8222] Forked 29594 +(29594) found +[8221] Forked 29595 +[8220] Forked 29596 +(29595) found +(29596) found +[8219] Forked 29597 +[8218] Forked 29598 +(29597) found +(29598) found +[8217] Forked 29599 +(29599) found +[8216] Forked 29600 +(29600) found +[8215] Forked 29601 +(29601) found +[8214] Forked 29602 +(29602) found +[8213] Forked 29603 +(29603) found +[8212] Forked 29604 +(29604) found +[8211] Forked 29605 +(29605) found +[8210] Forked 29606 +(29606) found +[8209] Forked 29607 +(29607) found +[8208] Forked 29608 +(29608) found +[8207] Forked 29609 +(29609) found +[8206] Forked 29610 +(29610) found +[8205] Forked 29611 +(29611) found +[8204] Forked 29612 +(29612) found +[8203] Forked 29613 +(29613) found +[8202] Forked 29614 +(29614) found +[8201] Forked 29615 +(29615) found +[8200] Forked 29616 +(29616) found +[8199] Forked 29617 +(29617) found +[8198] Forked 29618 +(29618) found +[8197] Forked 29619 +(29619) found +[8196] Forked 29620 +(29620) found +[8195] Forked 29621 +(29621) found +[8194] Forked 29622 +(29622) found +[8193] Forked 29623 +(29623) found +[8192] Forked 29624 +(29624) found +[8191] Forked 29625 +(29625) found +[8190] Forked 29626 +(29626) found +[8189] Forked 29627 +(29627) found +[8188] Forked 29628 +(29628) found +[8187] Forked 29629 +(29629) found +[8186] Forked 29630 +(29630) found +[8185] Forked 29631 +(29631) found +[8184] Forked 29632 +(29632) found +[8183] Forked 29633 +(29633) found +[8182] Forked 29634 +(29634) found +[8181] Forked 29635 +(29635) found +[8180] Forked 29636 +(29636) found +[8179] Forked 29637 +(29637) found +[8178] Forked 29638 +[8177] Forked 29639 +(29638) found +(29639) found +[8176] Forked 29640 +[8175] Forked 29641 +(29640) found +(29641) found +[8174] Forked 29642 +[8173] Forked 29643 +(29642) found +(29643) found +[8172] Forked 29644 +[8171] Forked 29645 +(29644) found +(29645) found +[8170] Forked 29646 +[8169] Forked 29647 +(29646) found +(29647) found +[8168] Forked 29648 +[8167] Forked 29649 +(29648) found +(29649) found +[8166] Forked 29650 +[8165] Forked 29651 +(29650) found +(29651) found +[8164] Forked 29652 +[8163] Forked 29653 +(29652) found +(29653) found +[8162] Forked 29654 +[8161] Forked 29655 +(29654) found +(29655) found +[8160] Forked 29656 +[8159] Forked 29657 +(29656) found +(29657) found +[8158] Forked 29658 +[8157] Forked 29659 +(29658) found +(29659) found +[8156] Forked 29660 +[8155] Forked 29661 +(29660) found +(29661) found +[8154] Forked 29662 +[8153] Forked 29663 +(29662) found +(29663) found +[8152] Forked 29664 +[8151] Forked 29665 +(29665) found +(29664) found +[8150] Forked 29666 +(29666) found +[8149] Forked 29667 +(29667) found +[8148] Forked 29668 +(29668) found +[8147] Forked 29669 +(29669) found +[8146] Forked 29670 +(29670) found +[8145] Forked 29671 +(29671) found +[8144] Forked 29672 +(29672) found +[8143] Forked 29673 +(29673) found +[8142] Forked 29674 +(29674) found +[8141] Forked 29675 +(29675) found +[8140] Forked 29676 +(29676) found +[8139] Forked 29677 +(29677) found +[8138] Forked 29678 +(29678) found +[8137] Forked 29679 +(29679) found +[8136] Forked 29680 +(29680) found +[8135] Forked 29681 +(29681) found +[8134] Forked 29682 +(29682) found +[8133] Forked 29683 +(29683) found +[8132] Forked 29684 +(29684) found +[8131] Forked 29685 +(29685) found +[8130] Forked 29686 +(29686) found +[8129] Forked 29687 +(29687) found +[8128] Forked 29688 +(29688) found +[8127] Forked 29689 +(29689) found +[8126] Forked 29690 +(29690) found +[8125] Forked 29691 +(29691) found +[8124] Forked 29692 +(29692) found +[8123] Forked 29693 +(29693) found +[8122] Forked 29694 +(29694) found +[8121] Forked 29695 +(29695) found +[8120] Forked 29696 +(29696) found +[8119] Forked 29697 +(29697) found +[8118] Forked 29698 +(29698) found +[8117] Forked 29699 +(29699) found +[8116] Forked 29700 +(29700) found +[8115] Forked 29701 +(29701) found +[8114] Forked 29702 +(29702) found +[8113] Forked 29703 +(29703) found +[8112] Forked 29704 +(29704) found +[8111] Forked 29705 +(29705) found +[8110] Forked 29706 +(29706) found +[8109] Forked 29707 +(29707) found +[8108] Forked 29708 +(29708) found +[8107] Forked 29709 +(29709) found +[8106] Forked 29710 +(29710) found +[8105] Forked 29711 +(29711) found +[8104] Forked 29712 +(29712) found +[8103] Forked 29713 +(29713) found +[8102] Forked 29714 +[8101] Forked 29715 +(29714) found +(29715) found +[8100] Forked 29716 +[8099] Forked 29717 +(29716) found +(29717) found +[8098] Forked 29718 +[8097] Forked 29719 +(29718) found +(29719) found +[8096] Forked 29720 +[8095] Forked 29721 +(29720) found +(29721) found +[8094] Forked 29722 +[8093] Forked 29723 +(29722) found +(29723) found +[8092] Forked 29724 +[8091] Forked 29725 +(29724) found +(29725) found +[8090] Forked 29726 +[8089] Forked 29727 +(29726) found +(29727) found +[8088] Forked 29728 +[8087] Forked 29729 +(29728) found +(29729) found +[8086] Forked 29730 +[8085] Forked 29731 +(29730) found +(29731) found +[8084] Forked 29732 +[8083] Forked 29733 +(29732) found +(29733) found +[8082] Forked 29734 +[8081] Forked 29735 +(29734) found +(29735) found +[8080] Forked 29736 +[8079] Forked 29737 +(29737) found +(29736) found +[8078] Forked 29738 +(29738) found +[8077] Forked 29739 +(29739) found +[8076] Forked 29740 +(29740) found +[8075] Forked 29741 +(29741) found +[8074] Forked 29742 +(29742) found +[8073] Forked 29743 +(29743) found +[8072] Forked 29744 +(29744) found +[8071] Forked 29745 +(29745) found +[8070] Forked 29746 +(29746) found +[8069] Forked 29747 +(29747) found +[8068] Forked 29748 +(29748) found +[8067] Forked 29749 +(29749) found +[8066] Forked 29750 +(29750) found +[8065] Forked 29751 +(29751) found +[8064] Forked 29752 +(29752) found +[8063] Forked 29753 +(29753) found +[8062] Forked 29754 +(29754) found +[8061] Forked 29755 +(29755) found +[8060] Forked 29756 +(29756) found +[8059] Forked 29757 +(29757) found +[8058] Forked 29758 +(29758) found +[8057] Forked 29759 +(29759) found +[8056] Forked 29760 +(29760) found +[8055] Forked 29761 +(29761) found +[8054] Forked 29762 +(29762) found +[8053] Forked 29763 +(29763) found +[8052] Forked 29764 +(29764) found +[8051] Forked 29765 +(29765) found +[8050] Forked 29766 +(29766) found +[8049] Forked 29767 +(29767) found +[8048] Forked 29768 +(29768) found +[8047] Forked 29769 +(29769) found +[8046] Forked 29770 +(29770) found +[8045] Forked 29771 +(29771) found +[8044] Forked 29772 +(29772) found +[8043] Forked 29773 +(29773) found +[8042] Forked 29774 +(29774) found +[8041] Forked 29775 +(29775) found +[8040] Forked 29776 +(29776) found +[8039] Forked 29777 +(29777) found +[8038] Forked 29778 +(29778) found +[8037] Forked 29779 +(29779) found +[8036] Forked 29780 +(29780) found +[8035] Forked 29781 +(29781) found +[8034] Forked 29782 +(29782) found +[8033] Forked 29783 +(29783) found +[8032] Forked 29784 +(29784) found +[8031] Forked 29785 +(29785) found +[8030] Forked 29786 +(29786) found +[8029] Forked 29787 +(29787) found +[8028] Forked 29788 +(29788) found +[8027] Forked 29789 +[8026] Forked 29790 +(29789) found +(29790) found +[8025] Forked 29791 +[8024] Forked 29792 +(29791) found +(29792) found +[8023] Forked 29793 +[8022] Forked 29794 +(29793) found +(29794) found +[8021] Forked 29795 +[8020] Forked 29796 +(29795) found +(29796) found +[8019] Forked 29797 +[8018] Forked 29798 +(29797) found +(29798) found +[8017] Forked 29799 +[8016] Forked 29800 +(29799) found +(29800) found +[8015] Forked 29801 +[8014] Forked 29802 +(29801) found +(29802) found +[8013] Forked 29803 +[8012] Forked 29804 +(29803) found +(29804) found +[8011] Forked 29805 +[8010] Forked 29806 +(29805) found +(29806) found +[8009] Forked 29807 +[8008] Forked 29810 +(29807) found +(29810) found +[8007] Forked 29811 +[8006] Forked 29812 +(29811) found +(29812) found +[8005] Forked 29813 +[8004] Forked 29814 +(29813) found +(29814) found +[8003] Forked 29815 +[8002] Forked 29816 +(29815) found +(29816) found +[8001] Forked 29817 +[8000] Forked 29818 +(29817) found +(29818) found +[7999] Forked 29819 +[7998] Forked 29820 +(29819) found +(29820) found +[7997] Forked 29821 +[7996] Forked 29822 +(29821) found +(29822) found +[7995] Forked 29823 +[7994] Forked 29824 +(29823) found +(29824) found +[7993] Forked 29825 +[7992] Forked 29826 +(29825) found +(29826) found +[7991] Forked 29827 +[7990] Forked 29828 +(29827) found +(29828) found +[7989] Forked 29829 +[7988] Forked 29830 +(29829) found +(29830) found +[7987] Forked 29831 +[7986] Forked 29832 +(29831) found +(29832) found +[7985] Forked 29833 +[7984] Forked 29834 +(29833) found +(29834) found +[7983] Forked 29835 +(29835) found +[7982] Forked 29836 +(29836) found +[7981] Forked 29837 +(29837) found +[7980] Forked 29838 +(29838) found +[7979] Forked 29839 +(29839) found +[7978] Forked 29840 +(29840) found +[7977] Forked 29841 +(29841) found +[7976] Forked 29842 +(29842) found +[7975] Forked 29843 +(29843) found +[7974] Forked 29844 +(29844) found +[7973] Forked 29845 +(29845) found +[7972] Forked 29846 +(29846) found +[7971] Forked 29847 +(29847) found +[7970] Forked 29848 +(29848) found +[7969] Forked 29849 +(29849) found +[7968] Forked 29850 +(29850) found +[7967] Forked 29851 +(29851) found +[7966] Forked 29852 +(29852) found +[7965] Forked 29853 +(29853) found +[7964] Forked 29854 +(29854) found +[7963] Forked 29855 +(29855) found +[7962] Forked 29856 +(29856) found +[7961] Forked 29857 +(29857) found +[7960] Forked 29858 +(29858) found +[7959] Forked 29859 +(29859) found +[7958] Forked 29860 +(29860) found +[7957] Forked 29861 +(29861) found +[7956] Forked 29862 +(29862) found +[7955] Forked 29863 +(29863) found +[7954] Forked 29864 +(29864) found +[7953] Forked 29865 +(29865) found +[7952] Forked 29866 +(29866) found +[7951] Forked 29867 +(29867) found +[7950] Forked 29868 +(29868) found +[7949] Forked 29869 +(29869) found +[7948] Forked 29870 +(29870) found +[7947] Forked 29871 +(29871) found +[7946] Forked 29872 +(29872) found +[7945] Forked 29873 +[7944] Forked 29874 +(29873) found +(29874) found +[7943] Forked 29875 +[7942] Forked 29876 +(29875) found +(29876) found +[7941] Forked 29877 +[7940] Forked 29878 +(29877) found +(29878) found +[7939] Forked 29879 +[7938] Forked 29880 +(29879) found +(29880) found +[7937] Forked 29881 +[7936] Forked 29882 +(29881) found +(29882) found +[7935] Forked 29883 +[7934] Forked 29884 +(29883) found +(29884) found +[7933] Forked 29885 +[7932] Forked 29886 +(29885) found +(29886) found +[7931] Forked 29887 +[7930] Forked 29888 +(29887) found +(29888) found +[7929] Forked 29889 +[7928] Forked 29890 +(29889) found +(29890) found +[7927] Forked 29891 +[7926] Forked 29892 +(29891) found +(29892) found +[7925] Forked 29893 +[7924] Forked 29894 +(29893) found +(29894) found +[7923] Forked 29895 +[7922] Forked 29896 +(29895) found +(29896) found +[7921] Forked 29897 +[7920] Forked 29898 +(29897) found +(29898) found +[7919] Forked 29899 +[7918] Forked 29900 +(29899) found +(29900) found +[7917] Forked 29901 +[7916] Forked 29902 +(29901) found +(29902) found +[7915] Forked 29903 +[7914] Forked 29904 +(29903) found +(29904) found +[7913] Forked 29905 +[7912] Forked 29906 +(29905) found +(29906) found +[7911] Forked 29907 +[7910] Forked 29908 +(29907) found +(29908) found +[7909] Forked 29909 +[7908] Forked 29910 +(29909) found +(29910) found +[7907] Forked 29911 +[7906] Forked 29912 +(29911) found +(29912) found +[7905] Forked 29913 +[7904] Forked 29914 +(29913) found +(29914) found +[7903] Forked 29915 +[7902] Forked 29916 +(29915) found +(29916) found +[7901] Forked 29917 +(29917) found +[7900] Forked 29918 +(29918) found +[7899] Forked 29919 +(29919) found +[7898] Forked 29920 +(29920) found +[7897] Forked 29921 +(29921) found +[7896] Forked 29922 +(29922) found +[7895] Forked 29923 +(29923) found +[7894] Forked 29924 +(29924) found +[7893] Forked 29925 +(29925) found +[7892] Forked 29926 +(29926) found +[7891] Forked 29927 +(29927) found +[7890] Forked 29928 +(29928) found +[7889] Forked 29929 +(29929) found +[7888] Forked 29930 +(29930) found +[7887] Forked 29931 +(29931) found +[7886] Forked 29932 +(29932) found +[7885] Forked 29933 +(29933) found +[7884] Forked 29934 +(29934) found +[7883] Forked 29935 +(29935) found +[7882] Forked 29936 +(29936) found +[7881] Forked 29937 +(29937) found +[7880] Forked 29938 +(29938) found +[7879] Forked 29939 +(29939) found +[7878] Forked 29940 +(29940) found +[7877] Forked 29941 +(29941) found +[7876] Forked 29942 +(29942) found +[7875] Forked 29943 +(29943) found +[7874] Forked 29944 +(29944) found +[7873] Forked 29945 +(29945) found +[7872] Forked 29946 +(29946) found +[7871] Forked 29947 +(29947) found +[7870] Forked 29948 +(29948) found +[7869] Forked 29949 +(29949) found +[7868] Forked 29950 +(29950) found +[7867] Forked 29951 +(29951) found +[7866] Forked 29952 +(29952) found +[7865] Forked 29953 +(29953) found +[7864] Forked 29954 +(29954) found +[7863] Forked 29955 +(29955) found +[7862] Forked 29956 +[7861] Forked 29957 +(29956) found +(29957) found +[7860] Forked 29958 +[7859] Forked 29959 +(29958) found +(29959) found +[7858] Forked 29960 +[7857] Forked 29961 +(29960) found +(29961) found +[7856] Forked 29962 +[7855] Forked 29963 +(29962) found +(29963) found +[7854] Forked 29964 +[7853] Forked 29965 +(29964) found +(29965) found +[7852] Forked 29966 +[7851] Forked 29967 +(29966) found +(29967) found +[7850] Forked 29968 +[7849] Forked 29969 +(29968) found +(29969) found +[7848] Forked 29970 +[7847] Forked 29972 +(29970) found +(29972) found +[7846] Forked 29973 +[7845] Forked 29974 +(29973) found +(29974) found +[7844] Forked 29975 +[7843] Forked 29976 +(29975) found +(29976) found +[7842] Forked 29977 +[7841] Forked 29978 +(29977) found +(29978) found +[7840] Forked 29979 +[7839] Forked 29980 +(29979) found +(29980) found +[7838] Forked 29981 +[7837] Forked 29982 +(29981) found +(29982) found +[7836] Forked 29983 +[7835] Forked 29984 +(29983) found +(29984) found +[7834] Forked 29985 +[7833] Forked 29986 +(29985) found +(29986) found +[7832] Forked 29987 +[7831] Forked 29988 +(29987) found +(29988) found +[7830] Forked 29989 +[7829] Forked 29990 +(29989) found +(29990) found +[7828] Forked 29991 +[7827] Forked 29992 +(29992) found +(29991) found +[7826] Forked 29993 +(29993) found +[7825] Forked 29994 +(29994) found +[7824] Forked 29995 +(29995) found +[7823] Forked 29996 +(29996) found +[7822] Forked 29997 +(29997) found +[7821] Forked 29998 +(29998) found +[7820] Forked 29999 +(29999) found +[7819] Forked 30000 +(30000) found +[7818] Forked 30001 +(30001) found +[7817] Forked 30002 +(30002) found +[7816] Forked 30003 +(30003) found +[7815] Forked 30004 +(30004) found +[7814] Forked 30005 +(30005) found +[7813] Forked 30006 +(30006) found +[7812] Forked 30007 +(30007) found +[7811] Forked 30008 +(30008) found +[7810] Forked 30009 +(30009) found +[7809] Forked 30010 +(30010) found +[7808] Forked 30011 +(30011) found +[7807] Forked 30012 +(30012) found +[7806] Forked 30013 +(30013) found +[7805] Forked 30014 +(30014) found +[7804] Forked 30015 +(30015) found +[7803] Forked 30016 +(30016) found +[7802] Forked 30017 +(30017) found +[7801] Forked 30018 +(30018) found +[7800] Forked 30019 +(30019) found +[7799] Forked 30020 +(30020) found +[7798] Forked 30021 +(30021) found +[7797] Forked 30022 +(30022) found +[7796] Forked 30023 +(30023) found +[7795] Forked 30024 +(30024) found +[7794] Forked 30025 +(30025) found +[7793] Forked 30026 +(30026) found +[7792] Forked 30027 +(30027) found +[7791] Forked 30028 +(30028) found +[7790] Forked 30029 +(30029) found +[7789] Forked 30030 +(30030) found +[7788] Forked 30031 +(30031) found +[7787] Forked 30032 +(30032) found +[7786] Forked 30033 +(30033) found +[7785] Forked 30034 +(30034) found +[7784] Forked 30035 +(30035) found +[7783] Forked 30036 +(30036) found +[7782] Forked 30037 +(30037) found +[7781] Forked 30038 +(30038) found +[7780] Forked 30039 +(30039) found +[7779] Forked 30040 +(30040) found +[7778] Forked 30041 +(30041) found +[7777] Forked 30042 +(30042) found +[7776] Forked 30043 +(30043) found +[7775] Forked 30044 +(30044) found +[7774] Forked 30045 +(30045) found +[7773] Forked 30046 +(30046) found +[7772] Forked 30047 +(30047) found +[7771] Forked 30048 +(30048) found +[7770] Forked 30049 +(30049) found +[7769] Forked 30050 +(30050) found +[7768] Forked 30051 +(30051) found +[7767] Forked 30052 +(30052) found +[7766] Forked 30053 +(30053) found +[7765] Forked 30054 +(30054) found +[7764] Forked 30055 +(30055) found +[7763] Forked 30056 +(30056) found +[7762] Forked 30057 +(30057) found +[7761] Forked 30058 +(30058) found +[7760] Forked 30059 +(30059) found +[7759] Forked 30060 +(30060) found +[7758] Forked 30061 +(30061) found +[7757] Forked 30062 +(30062) found +[7756] Forked 30063 +(30063) found +[7755] Forked 30064 +[7754] Forked 30065 +(30064) found +(30065) found +[7753] Forked 30066 +[7752] Forked 30067 +(30066) found +(30067) found +[7751] Forked 30068 +[7750] Forked 30069 +(30068) found +(30069) found +[7749] Forked 30070 +[7748] Forked 30071 +(30070) found +(30071) found +[7747] Forked 30072 +[7746] Forked 30073 +(30072) found +(30073) found +[7745] Forked 30074 +[7744] Forked 30075 +(30074) found +(30075) found +[7743] Forked 30076 +[7742] Forked 30077 +(30076) found +(30077) found +[7741] Forked 30078 +[7740] Forked 30079 +(30078) found +(30079) found +[7739] Forked 30080 +[7738] Forked 30081 +(30080) found +(30081) found +[7737] Forked 30083 +[7736] Forked 30084 +(30083) found +(30084) found +[7735] Forked 30085 +[7734] Forked 30086 +(30085) found +(30086) found +[7733] Forked 30087 +[7732] Forked 30088 +(30087) found +(30088) found +[7731] Forked 30089 +[7730] Forked 30090 +(30089) found +(30090) found +[7729] Forked 30091 +[7728] Forked 30092 +(30091) found +(30092) found +[7727] Forked 30093 +[7726] Forked 30094 +(30093) found +(30094) found +[7725] Forked 30095 +[7724] Forked 30096 +(30095) found +(30096) found +[7723] Forked 30097 +[7722] Forked 30098 +(30097) found +(30098) found +[7721] Forked 30099 +[7720] Forked 30100 +(30099) found +(30100) found +[7719] Forked 30101 +[7718] Forked 30102 +(30101) found +(30102) found +[7717] Forked 30103 +[7716] Forked 30104 +(30103) found +(30104) found +[7715] Forked 30105 +[7714] Forked 30106 +(30105) found +(30106) found +[7713] Forked 30107 +[7712] Forked 30108 +(30107) found +(30108) found +[7711] Forked 30109 +[7710] Forked 30110 +(30109) found +(30110) found +[7709] Forked 30111 +(30111) found +[7708] Forked 30112 +(30112) found +[7707] Forked 30113 +(30113) found +[7706] Forked 30114 +(30114) found +[7705] Forked 30115 +(30115) found +[7704] Forked 30116 +(30116) found +[7703] Forked 30117 +(30117) found +[7702] Forked 30118 +(30118) found +[7701] Forked 30119 +(30119) found +[7700] Forked 30120 +(30120) found +[7699] Forked 30121 +(30121) found +[7698] Forked 30122 +(30122) found +[7697] Forked 30123 +(30123) found +[7696] Forked 30124 +(30124) found +[7695] Forked 30125 +(30125) found +[7694] Forked 30126 +(30126) found +[7693] Forked 30127 +(30127) found +[7692] Forked 30128 +(30128) found +[7691] Forked 30129 +(30129) found +[7690] Forked 30130 +(30130) found +[7689] Forked 30131 +(30131) found +[7688] Forked 30132 +(30132) found +[7687] Forked 30133 +(30133) found +[7686] Forked 30134 +(30134) found +[7685] Forked 30135 +(30135) found +[7684] Forked 30136 +(30136) found +[7683] Forked 30137 +(30137) found +[7682] Forked 30138 +(30138) found +[7681] Forked 30139 +(30139) found +[7680] Forked 30140 +(30140) found +[7679] Forked 30141 +(30141) found +[7678] Forked 30142 +(30142) found +[7677] Forked 30143 +(30143) found +[7676] Forked 30144 +(30144) found +[7675] Forked 30145 +[7674] Forked 30146 +(30145) found +(30146) found +[7673] Forked 30147 +[7672] Forked 30148 +(30148) found +(30147) found +[7671] Forked 30149 +(30149) found +[7670] Forked 30150 +(30150) found +[7669] Forked 30151 +(30151) found +[7668] Forked 30152 +(30152) found +[7667] Forked 30153 +(30153) found +[7666] Forked 30154 +(30154) found +[7665] Forked 30155 +(30155) found +[7664] Forked 30156 +(30156) found +[7663] Forked 30157 +(30157) found +[7662] Forked 30158 +(30158) found +[7661] Forked 30159 +(30159) found +[7660] Forked 30160 +(30160) found +[7659] Forked 30161 +(30161) found +[7658] Forked 30162 +(30162) found +[7657] Forked 30163 +(30163) found +[7656] Forked 30164 +(30164) found +[7655] Forked 30165 +(30165) found +[7654] Forked 30166 +(30166) found +[7653] Forked 30167 +(30167) found +[7652] Forked 30168 +(30168) found +[7651] Forked 30169 +(30169) found +[7650] Forked 30170 +(30170) found +[7649] Forked 30171 +(30171) found +[7648] Forked 30172 +(30172) found +[7647] Forked 30173 +(30173) found +[7646] Forked 30174 +(30174) found +[7645] Forked 30175 +(30175) found +[7644] Forked 30176 +(30176) found +[7643] Forked 30177 +(30177) found +[7642] Forked 30178 +(30178) found +[7641] Forked 30179 +(30179) found +[7640] Forked 30180 +(30180) found +[7639] Forked 30181 +(30181) found +[7638] Forked 30182 +(30182) found +[7637] Forked 30183 +(30183) found +[7636] Forked 30184 +(30184) found +[7635] Forked 30185 +(30185) found +[7634] Forked 30186 +(30186) found +[7633] Forked 30187 +(30187) found +[7632] Forked 30188 +(30188) found +[7631] Forked 30189 +(30189) found +[7630] Forked 30190 +(30190) found +[7629] Forked 30191 +(30191) found +[7628] Forked 30192 +(30192) found +[7627] Forked 30193 +(30193) found +[7626] Forked 30194 +(30194) found +[7625] Forked 30195 +(30195) found +[7624] Forked 30196 +(30196) found +[7623] Forked 30197 +(30197) found +[7622] Forked 30198 +(30198) found +[7621] Forked 30199 +(30199) found +[7620] Forked 30200 +(30200) found +[7619] Forked 30201 +(30201) found +[7618] Forked 30202 +(30202) found +[7617] Forked 30203 +(30203) found +[7616] Forked 30204 +(30204) found +[7615] Forked 30205 +(30205) found +[7614] Forked 30206 +(30206) found +[7613] Forked 30207 +(30207) found +[7612] Forked 30208 +(30208) found +[7611] Forked 30209 +(30209) found +[7610] Forked 30210 +(30210) found +[7609] Forked 30211 +(30211) found +[7608] Forked 30212 +(30212) found +[7607] Forked 30213 +(30213) found +[7606] Forked 30214 +(30214) found +[7605] Forked 30215 +(30215) found +[7604] Forked 30216 +(30216) found +[7603] Forked 30217 +(30217) found +[7602] Forked 30218 +(30218) found +[7601] Forked 30219 +(30219) found +[7600] Forked 30220 +(30220) found +[7599] Forked 30221 +(30221) found +[7598] Forked 30222 +(30222) found +[7597] Forked 30223 +(30223) found +[7596] Forked 30224 +(30224) found +[7595] Forked 30225 +(30225) found +[7594] Forked 30226 +(30226) found +[7593] Forked 30227 +(30227) found +[7592] Forked 30228 +(30228) found +[7591] Forked 30229 +(30229) found +[7590] Forked 30230 +(30230) found +[7589] Forked 30231 +(30231) found +[7588] Forked 30232 +(30232) found +[7587] Forked 30233 +(30233) found +[7586] Forked 30234 +(30234) found +[7585] Forked 30235 +(30235) found +[7584] Forked 30236 +(30236) found +[7583] Forked 30237 +(30237) found +[7582] Forked 30238 +(30238) found +[7581] Forked 30239 +(30239) found +[7580] Forked 30240 +(30240) found +[7579] Forked 30241 +(30241) found +[7578] Forked 30242 +(30242) found +[7577] Forked 30243 +(30243) found +[7576] Forked 30244 +(30244) found +[7575] Forked 30245 +(30245) found +[7574] Forked 30246 +(30246) found +[7573] Forked 30247 +(30247) found +[7572] Forked 30248 +(30248) found +[7571] Forked 30249 +(30249) found +[7570] Forked 30250 +(30250) found +[7569] Forked 30251 +(30251) found +[7568] Forked 30252 +(30252) found +[7567] Forked 30253 +(30253) found +[7566] Forked 30254 +(30254) found +[7565] Forked 30255 +(30255) found +[7564] Forked 30256 +(30256) found +[7563] Forked 30257 +(30257) found +[7562] Forked 30258 +(30258) found +[7561] Forked 30259 +(30259) found +[7560] Forked 30260 +(30260) found +[7559] Forked 30261 +(30261) found +[7558] Forked 30262 +(30262) found +[7557] Forked 30263 +(30263) found +[7556] Forked 30264 +(30264) found +[7555] Forked 30265 +(30265) found +[7554] Forked 30266 +(30266) found +[7553] Forked 30267 +(30267) found +[7552] Forked 30268 +(30268) found +[7551] Forked 30269 +(30269) found +[7550] Forked 30270 +(30270) found +[7549] Forked 30271 +(30271) found +[7548] Forked 30272 +(30272) found +[7547] Forked 30273 +(30273) found +[7546] Forked 30274 +(30274) found +[7545] Forked 30275 +(30275) found +[7544] Forked 30276 +(30276) found +[7543] Forked 30277 +(30277) found +[7542] Forked 30278 +(30278) found +[7541] Forked 30279 +(30279) found +[7540] Forked 30280 +(30280) found +[7539] Forked 30281 +[7538] Forked 30282 +(30281) found +(30282) found +[7537] Forked 30283 +[7536] Forked 30284 +(30283) found +(30284) found +[7535] Forked 30285 +[7534] Forked 30286 +(30285) found +(30286) found +[7533] Forked 30287 +[7532] Forked 30288 +(30287) found +(30288) found +[7531] Forked 30289 +[7530] Forked 30290 +(30290) found +(30289) found +[7529] Forked 30291 +(30291) found +[7528] Forked 30292 +(30292) found +[7527] Forked 30293 +(30293) found +[7526] Forked 30294 +(30294) found +[7525] Forked 30295 +(30295) found +[7524] Forked 30296 +(30296) found +[7523] Forked 30297 +(30297) found +[7522] Forked 30298 +(30298) found +[7521] Forked 30299 +(30299) found +[7520] Forked 30300 +(30300) found +[7519] Forked 30301 +(30301) found +[7518] Forked 30302 +(30302) found +[7517] Forked 30303 +(30303) found +[7516] Forked 30304 +(30304) found +[7515] Forked 30305 +(30305) found +[7514] Forked 30306 +(30306) found +[7513] Forked 30307 +(30307) found +[7512] Forked 30308 +(30308) found +[7511] Forked 30309 +(30309) found +[7510] Forked 30310 +(30310) found +[7509] Forked 30311 +(30311) found +[7508] Forked 30312 +(30312) found +[7507] Forked 30313 +(30313) found +[7506] Forked 30314 +(30314) found +[7505] Forked 30315 +(30315) found +[7504] Forked 30316 +(30316) found +[7503] Forked 30317 +(30317) found +[7502] Forked 30318 +(30318) found +[7501] Forked 30319 +(30319) found +[7500] Forked 30320 +(30320) found +[7499] Forked 30321 +(30321) found +[7498] Forked 30322 +(30322) found +[7497] Forked 30323 +(30323) found +[7496] Forked 30324 +(30324) found +[7495] Forked 30325 +(30325) found +[7494] Forked 30326 +(30326) found +[7493] Forked 30327 +(30327) found +[7492] Forked 30328 +(30328) found +[7491] Forked 30329 +(30329) found +[7490] Forked 30330 +(30330) found +[7489] Forked 30331 +(30331) found +[7488] Forked 30332 +(30332) found +[7487] Forked 30333 +(30333) found +[7486] Forked 30334 +(30334) found +[7485] Forked 30335 +(30335) found +[7484] Forked 30336 +(30336) found +[7483] Forked 30337 +(30337) found +[7482] Forked 30338 +(30338) found +[7481] Forked 30339 +(30339) found +[7480] Forked 30340 +(30340) found +[7479] Forked 30341 +(30341) found +[7478] Forked 30342 +(30342) found +[7477] Forked 30343 +(30343) found +[7476] Forked 30344 +(30344) found +[7475] Forked 30345 +(30345) found +[7474] Forked 30346 +(30346) found +[7473] Forked 30347 +(30347) found +[7472] Forked 30348 +(30348) found +[7471] Forked 30349 +(30349) found +[7470] Forked 30350 +(30350) found +[7469] Forked 30351 +(30351) found +[7468] Forked 30352 +(30352) found +[7467] Forked 30353 +(30353) found +[7466] Forked 30354 +[7465] Forked 30355 +(30354) found +(30355) found +[7464] Forked 30356 +[7463] Forked 30357 +(30356) found +(30357) found +[7462] Forked 30358 +[7461] Forked 30359 +(30358) found +(30359) found +[7460] Forked 30360 +[7459] Forked 30361 +(30360) found +(30361) found +[7458] Forked 30362 +[7457] Forked 30363 +(30362) found +(30363) found +[7456] Forked 30364 +[7455] Forked 30365 +(30364) found +(30365) found +[7454] Forked 30366 +[7453] Forked 30367 +(30366) found +(30367) found +[7452] Forked 30368 +[7451] Forked 30369 +(30368) found +(30369) found +[7450] Forked 30370 +[7449] Forked 30371 +(30370) found +(30371) found +[7448] Forked 30372 +[7447] Forked 30373 +(30372) found +(30373) found +[7446] Forked 30374 +[7445] Forked 30375 +(30374) found +(30375) found +[7444] Forked 30376 +[7443] Forked 30377 +(30376) found +(30377) found +[7442] Forked 30378 +[7441] Forked 30379 +(30378) found +(30379) found +[7440] Forked 30380 +[7439] Forked 30381 +(30380) found +(30381) found +[7438] Forked 30382 +[7437] Forked 30383 +(30382) found +(30383) found +[7436] Forked 30384 +[7435] Forked 30385 +(30384) found +(30385) found +[7434] Forked 30386 +[7433] Forked 30387 +(30386) found +(30387) found +[7432] Forked 30388 +[7431] Forked 30389 +(30388) found +(30389) found +[7430] Forked 30390 +[7429] Forked 30391 +(30390) found +(30391) found +[7428] Forked 30392 +[7427] Forked 30393 +(30392) found +(30393) found +[7426] Forked 30394 +[7425] Forked 30395 +(30394) found +(30395) found +[7424] Forked 30396 +[7423] Forked 30397 +(30396) found +(30397) found +[7422] Forked 30398 +[7421] Forked 30399 +(30398) found +(30399) found +[7420] Forked 30400 +(30400) found +[7419] Forked 30401 +(30401) found +[7418] Forked 30402 +(30402) found +[7417] Forked 30403 +(30403) found +[7416] Forked 30404 +(30404) found +[7415] Forked 30405 +(30405) found +[7414] Forked 30406 +(30406) found +[7413] Forked 30407 +(30407) found +[7412] Forked 30408 +(30408) found +[7411] Forked 30409 +(30409) found +[7410] Forked 30410 +(30410) found +[7409] Forked 30411 +(30411) found +[7408] Forked 30412 +(30412) found +[7407] Forked 30413 +(30413) found +[7406] Forked 30414 +(30414) found +[7405] Forked 30415 +(30415) found +[7404] Forked 30416 +(30416) found +[7403] Forked 30417 +(30417) found +[7402] Forked 30418 +(30418) found +[7401] Forked 30419 +(30419) found +[7400] Forked 30420 +(30420) found +[7399] Forked 30421 +(30421) found +[7398] Forked 30422 +(30422) found +[7397] Forked 30423 +(30423) found +[7396] Forked 30424 +(30424) found +[7395] Forked 30425 +(30425) found +[7394] Forked 30426 +(30426) found +[7393] Forked 30427 +(30427) found +[7392] Forked 30428 +(30428) found +[7391] Forked 30429 +(30429) found +[7390] Forked 30430 +(30430) found +[7389] Forked 30431 +(30431) found +[7388] Forked 30432 +(30432) found +[7387] Forked 30433 +(30433) found +[7386] Forked 30434 +[7385] Forked 30435 +(30434) found +(30435) found +[7384] Forked 30436 +[7383] Forked 30437 +(30436) found +(30437) found +[7382] Forked 30438 +[7381] Forked 30439 +(30438) found +(30439) found +[7380] Forked 30440 +[7379] Forked 30441 +(30440) found +(30441) found +[7378] Forked 30442 +[7377] Forked 30443 +(30442) found +(30443) found +[7376] Forked 30444 +[7375] Forked 30445 +(30444) found +(30445) found +[7374] Forked 30446 +[7373] Forked 30447 +(30446) found +(30447) found +[7372] Forked 30448 +[7371] Forked 30449 +(30448) found +(30449) found +[7370] Forked 30450 +[7369] Forked 30451 +(30450) found +(30451) found +[7368] Forked 30452 +[7367] Forked 30453 +(30452) found +(30453) found +[7366] Forked 30454 +[7365] Forked 30455 +(30454) found +(30455) found +[7364] Forked 30456 +[7363] Forked 30457 +(30456) found +(30457) found +[7362] Forked 30458 +[7361] Forked 30459 +(30458) found +(30459) found +[7360] Forked 30460 +[7359] Forked 30461 +(30460) found +(30461) found +[7358] Forked 30462 +[7357] Forked 30463 +(30462) found +(30463) found +[7356] Forked 30464 +[7355] Forked 30465 +(30464) found +(30465) found +[7354] Forked 30466 +[7353] Forked 30467 +(30466) found +(30467) found +[7352] Forked 30468 +[7351] Forked 30469 +(30468) found +(30469) found +[7350] Forked 30470 +[7349] Forked 30471 +(30470) found +(30471) found +[7348] Forked 30472 +[7347] Forked 30473 +(30472) found +(30473) found +[7346] Forked 30474 +[7345] Forked 30475 +(30474) found +(30475) found +[7344] Forked 30476 +[7343] Forked 30477 +(30476) found +(30477) found +[7342] Forked 30478 +[7341] Forked 30479 +(30478) found +(30479) found +[7340] Forked 30480 +[7339] Forked 30481 +(30480) found +(30481) found +[7338] Forked 30482 +[7337] Forked 30483 +(30482) found +(30483) found +[7336] Forked 30484 +[7335] Forked 30485 +(30484) found +(30485) found +[7334] Forked 30486 +[7333] Forked 30487 +(30486) found +(30487) found +[7332] Forked 30488 +[7331] Forked 30489 +(30488) found +(30489) found +[7330] Forked 30490 +[7329] Forked 30491 +(30490) found +(30491) found +[7328] Forked 30492 +[7327] Forked 30493 +(30492) found +(30493) found +[7326] Forked 30494 +[7325] Forked 30495 +(30494) found +(30495) found +[7324] Forked 30496 +[7323] Forked 30497 +(30496) found +(30497) found +[7322] Forked 30498 +[7321] Forked 30499 +(30498) found +(30499) found +[7320] Forked 30500 +[7319] Forked 30501 +(30500) found +(30501) found +[7318] Forked 30502 +[7317] Forked 30503 +(30502) found +(30503) found +[7316] Forked 30504 +[7315] Forked 30505 +(30504) found +(30505) found +[7314] Forked 30506 +[7313] Forked 30507 +(30506) found +(30507) found +[7312] Forked 30509 +(30509) found +[7311] Forked 30510 +(30510) found +[7310] Forked 30511 +[7309] Forked 30512 +(30511) found +(30512) found +[7308] Forked 30513 +[7307] Forked 30515 +(30513) found +(30515) found +[7306] Forked 30516 +[7305] Forked 30517 +(30516) found +(30517) found +[7304] Forked 30518 +[7303] Forked 30519 +(30518) found +(30519) found +[7302] Forked 30521 +[7301] Forked 30522 +(30521) found +(30522) found +[7300] Forked 30523 +[7299] Forked 30524 +(30523) found +(30524) found +[7298] Forked 30525 +[7297] Forked 30526 +(30525) found +(30526) found +[7296] Forked 30528 +(30528) found +[7295] Forked 30529 +(30529) found +[7294] Forked 30530 +(30530) found +[7293] Forked 30531 +(30531) found +[7292] Forked 30532 +(30532) found +[7291] Forked 30534 +(30534) found +[7290] Forked 30535 +(30535) found +[7289] Forked 30536 +(30536) found +[7288] Forked 30537 +(30537) found +[7287] Forked 30538 +(30538) found +[7286] Forked 30540 +(30540) found +[7285] Forked 30541 +(30541) found +[7284] Forked 30542 +(30542) found +[7283] Forked 30543 +(30543) found +[7282] Forked 30544 +(30544) found +[7281] Forked 30545 +(30545) found +[7280] Forked 30546 +(30546) found +[7279] Forked 30547 +(30547) found +[7278] Forked 30548 +(30548) found +[7277] Forked 30549 +(30549) found +[7276] Forked 30550 +(30550) found +[7275] Forked 30551 +(30551) found +[7274] Forked 30552 +(30552) found +[7273] Forked 30553 +(30553) found +[7272] Forked 30554 +(30554) found +[7271] Forked 30555 +(30555) found +[7270] Forked 30556 +(30556) found +[7269] Forked 30557 +(30557) found +[7268] Forked 30558 +(30558) found +[7267] Forked 30559 +(30559) found +[7266] Forked 30560 +(30560) found +[7265] Forked 30561 +(30561) found +[7264] Forked 30562 +(30562) found +[7263] Forked 30563 +(30563) found +[7262] Forked 30564 +(30564) found +[7261] Forked 30565 +(30565) found +[7260] Forked 30566 +(30566) found +[7259] Forked 30567 +(30567) found +[7258] Forked 30568 +(30568) found +[7257] Forked 30569 +(30569) found +[7256] Forked 30570 +(30570) found +[7255] Forked 30571 +(30571) found +[7254] Forked 30572 +(30572) found +[7253] Forked 30573 +(30573) found +[7252] Forked 30574 +(30574) found +[7251] Forked 30575 +(30575) found +[7250] Forked 30576 +(30576) found +[7249] Forked 30577 +(30577) found +[7248] Forked 30578 +(30578) found +[7247] Forked 30579 +(30579) found +[7246] Forked 30580 +(30580) found +[7245] Forked 30581 +(30581) found +[7244] Forked 30582 +(30582) found +[7243] Forked 30583 +(30583) found +[7242] Forked 30584 +(30584) found +[7241] Forked 30585 +(30585) found +[7240] Forked 30586 +(30586) found +[7239] Forked 30587 +(30587) found +[7238] Forked 30588 +(30588) found +[7237] Forked 30589 +(30589) found +[7236] Forked 30590 +(30590) found +[7235] Forked 30591 +(30591) found +[7234] Forked 30592 +(30592) found +[7233] Forked 30593 +(30593) found +[7232] Forked 30594 +(30594) found +[7231] Forked 30595 +(30595) found +[7230] Forked 30596 +(30596) found +[7229] Forked 30597 +(30597) found +[7228] Forked 30598 +(30598) found +[7227] Forked 30599 +(30599) found +[7226] Forked 30600 +(30600) found +[7225] Forked 30601 +(30601) found +[7224] Forked 30602 +(30602) found +[7223] Forked 30603 +(30603) found +[7222] Forked 30604 +(30604) found +[7221] Forked 30605 +(30605) found +[7220] Forked 30606 +[7219] Forked 30607 +(30606) found +(30607) found +[7218] Forked 30608 +[7217] Forked 30609 +(30608) found +(30609) found +[7216] Forked 30610 +[7215] Forked 30611 +(30610) found +(30611) found +[7214] Forked 30612 +[7213] Forked 30613 +(30612) found +(30613) found +[7212] Forked 30614 +[7211] Forked 30615 +(30614) found +(30615) found +[7210] Forked 30616 +[7209] Forked 30617 +(30616) found +(30617) found +[7208] Forked 30618 +[7207] Forked 30619 +(30618) found +(30619) found +[7206] Forked 30620 +[7205] Forked 30621 +(30620) found +(30621) found +[7204] Forked 30622 +[7203] Forked 30623 +(30622) found +(30623) found +[7202] Forked 30624 +[7201] Forked 30625 +(30624) found +(30625) found +[7200] Forked 30626 +[7199] Forked 30627 +(30627) found +(30626) found +[7198] Forked 30628 +(30628) found +[7197] Forked 30629 +(30629) found +[7196] Forked 30630 +(30630) found +[7195] Forked 30631 +(30631) found +[7194] Forked 30632 +(30632) found +[7193] Forked 30633 +(30633) found +[7192] Forked 30634 +(30634) found +[7191] Forked 30635 +(30635) found +[7190] Forked 30636 +(30636) found +[7189] Forked 30637 +(30637) found +[7188] Forked 30638 +(30638) found +[7187] Forked 30639 +(30639) found +[7186] Forked 30640 +(30640) found +[7185] Forked 30641 +(30641) found +[7184] Forked 30642 +(30642) found +[7183] Forked 30643 +(30643) found +[7182] Forked 30644 +(30644) found +[7181] Forked 30645 +(30645) found +[7180] Forked 30646 +(30646) found +[7179] Forked 30647 +(30647) found +[7178] Forked 30648 +(30648) found +[7177] Forked 30649 +(30649) found +[7176] Forked 30650 +(30650) found +[7175] Forked 30651 +(30651) found +[7174] Forked 30652 +(30652) found +[7173] Forked 30653 +(30653) found +[7172] Forked 30654 +(30654) found +[7171] Forked 30655 +(30655) found +[7170] Forked 30656 +(30656) found +[7169] Forked 30657 +(30657) found +[7168] Forked 30658 +(30658) found +[7167] Forked 30659 +(30659) found +[7166] Forked 30660 +(30660) found +[7165] Forked 30661 +(30661) found +[7164] Forked 30662 +(30662) found +[7163] Forked 30663 +(30663) found +[7162] Forked 30664 +(30664) found +[7161] Forked 30665 +(30665) found +[7160] Forked 30666 +(30666) found +[7159] Forked 30667 +(30667) found +[7158] Forked 30668 +(30668) found +[7157] Forked 30669 +(30669) found +[7156] Forked 30670 +(30670) found +[7155] Forked 30671 +(30671) found +[7154] Forked 30672 +(30672) found +[7153] Forked 30673 +(30673) found +[7152] Forked 30674 +(30674) found +[7151] Forked 30675 +(30675) found +[7150] Forked 30676 +(30676) found +[7149] Forked 30677 +(30677) found +[7148] Forked 30678 +[7147] Forked 30679 +(30678) found +(30679) found +[7146] Forked 30680 +[7145] Forked 30681 +(30680) found +(30681) found +[7144] Forked 30682 +[7143] Forked 30683 +(30682) found +(30683) found +[7142] Forked 30684 +[7141] Forked 30685 +(30684) found +(30685) found +[7140] Forked 30686 +[7139] Forked 30687 +(30686) found +(30687) found +[7138] Forked 30688 +[7137] Forked 30689 +(30688) found +(30689) found +[7136] Forked 30690 +[7135] Forked 30691 +(30690) found +(30691) found +[7134] Forked 30692 +[7133] Forked 30693 +(30692) found +(30693) found +[7132] Forked 30694 +[7131] Forked 30695 +(30694) found +(30695) found +[7130] Forked 30696 +[7129] Forked 30697 +(30696) found +(30697) found +[7128] Forked 30698 +[7127] Forked 30699 +(30698) found +(30699) found +[7126] Forked 30700 +[7125] Forked 30701 +(30700) found +(30701) found +[7124] Forked 30702 +[7123] Forked 30703 +(30702) found +(30703) found +[7122] Forked 30704 +[7121] Forked 30705 +(30704) found +(30705) found +[7120] Forked 30706 +[7119] Forked 30707 +(30706) found +(30707) found +[7118] Forked 30708 +[7117] Forked 30709 +(30708) found +(30709) found +[7116] Forked 30710 +[7115] Forked 30711 +(30710) found +(30711) found +[7114] Forked 30712 +[7113] Forked 30713 +(30712) found +(30713) found +[7112] Forked 30714 +[7111] Forked 30715 +(30714) found +(30715) found +[7110] Forked 30716 +[7109] Forked 30717 +(30716) found +(30717) found +[7108] Forked 30718 +[7107] Forked 30719 +(30718) found +(30719) found +[7106] Forked 30720 +[7105] Forked 30721 +(30720) found +(30721) found +[7104] Forked 30722 +[7103] Forked 30723 +(30722) found +(30723) found +[7102] Forked 30724 +(30724) found +[7101] Forked 30725 +(30725) found +[7100] Forked 30726 +(30726) found +[7099] Forked 30727 +(30727) found +[7098] Forked 30728 +(30728) found +[7097] Forked 30729 +(30729) found +[7096] Forked 30730 +(30730) found +[7095] Forked 30731 +(30731) found +[7094] Forked 30732 +(30732) found +[7093] Forked 30733 +(30733) found +[7092] Forked 30734 +(30734) found +[7091] Forked 30735 +(30735) found +[7090] Forked 30736 +(30736) found +[7089] Forked 30737 +(30737) found +[7088] Forked 30738 +(30738) found +[7087] Forked 30739 +(30739) found +[7086] Forked 30740 +(30740) found +[7085] Forked 30741 +(30741) found +[7084] Forked 30742 +(30742) found +[7083] Forked 30743 +(30743) found +[7082] Forked 30744 +(30744) found +[7081] Forked 30745 +(30745) found +[7080] Forked 30746 +(30746) found +[7079] Forked 30747 +(30747) found +[7078] Forked 30748 +(30748) found +[7077] Forked 30749 +(30749) found +[7076] Forked 30750 +(30750) found +[7075] Forked 30751 +(30751) found +[7074] Forked 30752 +(30752) found +[7073] Forked 30753 +(30753) found +[7072] Forked 30754 +(30754) found +[7071] Forked 30755 +(30755) found +[7070] Forked 30756 +(30756) found +[7069] Forked 30757 +(30757) found +[7068] Forked 30758 +(30758) found +[7067] Forked 30759 +[7066] Forked 30760 +(30759) found +(30760) found +[7065] Forked 30761 +[7064] Forked 30762 +(30761) found +(30762) found +[7063] Forked 30763 +[7062] Forked 30764 +(30764) found +(30763) found +[7061] Forked 30765 +(30765) found +[7060] Forked 30766 +(30766) found +[7059] Forked 30767 +(30767) found +[7058] Forked 30768 +(30768) found +[7057] Forked 30769 +(30769) found +[7056] Forked 30770 +(30770) found +[7055] Forked 30771 +(30771) found +[7054] Forked 30772 +(30772) found +[7053] Forked 30773 +(30773) found +[7052] Forked 30774 +(30774) found +[7051] Forked 30775 +(30775) found +[7050] Forked 30776 +(30776) found +[7049] Forked 30777 +(30777) found +[7048] Forked 30778 +(30778) found +[7047] Forked 30779 +(30779) found +[7046] Forked 30780 +(30780) found +[7045] Forked 30781 +(30781) found +[7044] Forked 30782 +(30782) found +[7043] Forked 30783 +(30783) found +[7042] Forked 30784 +(30784) found +[7041] Forked 30785 +(30785) found +[7040] Forked 30786 +(30786) found +[7039] Forked 30787 +(30787) found +[7038] Forked 30788 +(30788) found +[7037] Forked 30789 +(30789) found +[7036] Forked 30790 +(30790) found +[7035] Forked 30791 +(30791) found +[7034] Forked 30792 +(30792) found +[7033] Forked 30793 +(30793) found +[7032] Forked 30794 +(30794) found +[7031] Forked 30795 +(30795) found +[7030] Forked 30796 +(30796) found +[7029] Forked 30797 +(30797) found +[7028] Forked 30798 +(30798) found +[7027] Forked 30799 +(30799) found +[7026] Forked 30800 +(30800) found +[7025] Forked 30801 +(30801) found +[7024] Forked 30802 +(30802) found +[7023] Forked 30803 +(30803) found +[7022] Forked 30804 +(30804) found +[7021] Forked 30805 +(30805) found +[7020] Forked 30806 +(30806) found +[7019] Forked 30807 +(30807) found +[7018] Forked 30808 +(30808) found +[7017] Forked 30809 +(30809) found +[7016] Forked 30810 +(30810) found +[7015] Forked 30811 +(30811) found +[7014] Forked 30812 +(30812) found +[7013] Forked 30813 +(30813) found +[7012] Forked 30814 +(30814) found +[7011] Forked 30815 +(30815) found +[7010] Forked 30816 +(30816) found +[7009] Forked 30817 +(30817) found +[7008] Forked 30818 +(30818) found +[7007] Forked 30819 +(30819) found +[7006] Forked 30820 +(30820) found +[7005] Forked 30821 +(30821) found +[7004] Forked 30822 +(30822) found +[7003] Forked 30823 +(30823) found +[7002] Forked 30824 +(30824) found +[7001] Forked 30825 +(30825) found +[7000] Forked 30826 +(30826) found +[6999] Forked 30827 +(30827) found +[6998] Forked 30828 +(30828) found +[6997] Forked 30829 +[6996] Forked 30831 +(30829) found +(30831) found +[6995] Forked 30832 +[6994] Forked 30833 +(30832) found +(30833) found +[6993] Forked 30834 +[6992] Forked 30835 +(30834) found +(30835) found +[6991] Forked 30837 +[6990] Forked 30838 +(30837) found +(30838) found +[6989] Forked 30839 +[6988] Forked 30840 +(30839) found +(30840) found +[6987] Forked 30841 +[6986] Forked 30843 +(30841) found +(30843) found +[6985] Forked 30844 +[6984] Forked 30845 +(30844) found +(30845) found +[6983] Forked 30846 +[6982] Forked 30847 +(30846) found +(30847) found +[6981] Forked 30849 +[6980] Forked 30850 +(30849) found +(30850) found +[6979] Forked 30851 +[6978] Forked 30852 +(30851) found +(30852) found +[6977] Forked 30853 +[6976] Forked 30855 +(30853) found +(30855) found +[6975] Forked 30856 +[6974] Forked 30857 +(30856) found +(30857) found +[6973] Forked 30858 +[6972] Forked 30859 +(30858) found +(30859) found +[6971] Forked 30861 +[6970] Forked 30862 +(30861) found +(30862) found +[6969] Forked 30863 +[6968] Forked 30864 +(30863) found +(30864) found +[6967] Forked 30865 +[6966] Forked 30866 +(30865) found +(30866) found +[6965] Forked 30867 +[6964] Forked 30868 +(30867) found +(30868) found +[6963] Forked 30869 +[6962] Forked 30870 +(30869) found +(30870) found +[6961] Forked 30871 +[6960] Forked 30872 +(30871) found +(30872) found +[6959] Forked 30873 +[6958] Forked 30874 +(30873) found +(30874) found +[6957] Forked 30875 +[6956] Forked 30876 +(30875) found +(30876) found +[6955] Forked 30877 +[6954] Forked 30878 +(30877) found +(30878) found +[6953] Forked 30879 +[6952] Forked 30880 +(30879) found +(30880) found +[6951] Forked 30881 +[6950] Forked 30882 +(30881) found +(30882) found +[6949] Forked 30883 +[6948] Forked 30884 +(30883) found +(30884) found +[6947] Forked 30885 +[6946] Forked 30886 +(30885) found +(30886) found +[6945] Forked 30887 +[6944] Forked 30888 +(30887) found +(30888) found +[6943] Forked 30889 +[6942] Forked 30890 +(30889) found +(30890) found +[6941] Forked 30891 +[6940] Forked 30892 +(30891) found +(30892) found +[6939] Forked 30893 +[6938] Forked 30894 +(30893) found +(30894) found +[6937] Forked 30895 +[6936] Forked 30896 +(30895) found +(30896) found +[6935] Forked 30897 +[6934] Forked 30898 +(30897) found +(30898) found +[6933] Forked 30899 +[6932] Forked 30900 +(30899) found +(30900) found +[6931] Forked 30901 +[6930] Forked 30902 +(30901) found +(30902) found +[6929] Forked 30903 +[6928] Forked 30904 +(30903) found +(30904) found +[6927] Forked 30905 +[6926] Forked 30906 +(30905) found +(30906) found +[6925] Forked 30907 +[6924] Forked 30908 +(30907) found +(30908) found +[6923] Forked 30909 +[6922] Forked 30910 +(30909) found +(30910) found +[6921] Forked 30911 +[6920] Forked 30912 +(30911) found +(30912) found +[6919] Forked 30913 +[6918] Forked 30914 +(30913) found +(30914) found +[6917] Forked 30915 +[6916] Forked 30916 +(30915) found +(30916) found +[6915] Forked 30917 +[6914] Forked 30918 +(30917) found +(30918) found +[6913] Forked 30919 +[6912] Forked 30920 +(30919) found +(30920) found +[6911] Forked 30921 +[6910] Forked 30923 +(30921) found +(30923) found +[6909] Forked 30924 +(30924) found +[6908] Forked 30925 +(30925) found +[6907] Forked 30926 +(30926) found +[6906] Forked 30927 +(30927) found +[6905] Forked 30928 +(30928) found +[6904] Forked 30929 +(30929) found +[6903] Forked 30930 +(30930) found +[6902] Forked 30931 +(30931) found +[6901] Forked 30932 +(30932) found +[6900] Forked 30933 +(30933) found +[6899] Forked 30934 +(30934) found +[6898] Forked 30935 +(30935) found +[6897] Forked 30936 +(30936) found +[6896] Forked 30937 +(30937) found +[6895] Forked 30938 +(30938) found +[6894] Forked 30939 +(30939) found +[6893] Forked 30940 +(30940) found +[6892] Forked 30941 +(30941) found +[6891] Forked 30942 +(30942) found +[6890] Forked 30943 +(30943) found +[6889] Forked 30944 +(30944) found +[6888] Forked 30945 +(30945) found +[6887] Forked 30946 +(30946) found +[6886] Forked 30947 +(30947) found +[6885] Forked 30948 +(30948) found +[6884] Forked 30949 +(30949) found +[6883] Forked 30950 +(30950) found +[6882] Forked 30951 +(30951) found +[6881] Forked 30952 +(30952) found +[6880] Forked 30953 +(30953) found +[6879] Forked 30954 +(30954) found +[6878] Forked 30955 +(30955) found +[6877] Forked 30956 +(30956) found +[6876] Forked 30957 +(30957) found +[6875] Forked 30958 +(30958) found +[6874] Forked 30959 +(30959) found +[6873] Forked 30960 +(30960) found +[6872] Forked 30961 +(30961) found +[6871] Forked 30962 +(30962) found +[6870] Forked 30963 +[6869] Forked 30964 +(30963) found +(30964) found +[6868] Forked 30965 +[6867] Forked 30966 +(30965) found +(30966) found +[6866] Forked 30967 +[6865] Forked 30968 +(30967) found +(30968) found +[6864] Forked 30969 +[6863] Forked 30970 +(30969) found +(30970) found +[6862] Forked 30971 +[6861] Forked 30972 +(30971) found +(30972) found +[6860] Forked 30973 +[6859] Forked 30974 +(30973) found +(30974) found +[6858] Forked 30975 +[6857] Forked 30976 +(30975) found +(30976) found +[6856] Forked 30977 +[6855] Forked 30978 +(30977) found +(30978) found +[6854] Forked 30979 +[6853] Forked 30980 +(30979) found +(30980) found +[6852] Forked 30981 +[6851] Forked 30982 +(30981) found +(30982) found +[6850] Forked 30983 +[6849] Forked 30984 +(30983) found +(30984) found +[6848] Forked 30985 +[6847] Forked 30986 +(30985) found +(30986) found +[6846] Forked 30987 +[6845] Forked 30988 +(30987) found +(30988) found +[6844] Forked 30989 +[6843] Forked 30990 +(30989) found +(30990) found +[6842] Forked 30991 +[6841] Forked 30992 +(30991) found +(30992) found +[6840] Forked 30993 +[6839] Forked 30994 +(30993) found +(30994) found +[6838] Forked 30995 +[6837] Forked 30996 +(30995) found +(30996) found +[6836] Forked 30997 +[6835] Forked 30998 +(30997) found +(30998) found +[6834] Forked 30999 +[6833] Forked 31000 +(30999) found +(31000) found +[6832] Forked 31001 +[6831] Forked 31003 +(31001) found +(31003) found +[6830] Forked 31004 +(31004) found +[6829] Forked 31005 +(31005) found +[6828] Forked 31006 +(31006) found +[6827] Forked 31007 +(31007) found +[6826] Forked 31008 +(31008) found +[6825] Forked 31009 +(31009) found +[6824] Forked 31010 +(31010) found +[6823] Forked 31011 +(31011) found +[6822] Forked 31012 +(31012) found +[6821] Forked 31013 +(31013) found +[6820] Forked 31014 +(31014) found +[6819] Forked 31015 +(31015) found +[6818] Forked 31016 +(31016) found +[6817] Forked 31017 +(31017) found +[6816] Forked 31018 +(31018) found +[6815] Forked 31019 +(31019) found +[6814] Forked 31020 +(31020) found +[6813] Forked 31021 +(31021) found +[6812] Forked 31022 +(31022) found +[6811] Forked 31023 +(31023) found +[6810] Forked 31024 +(31024) found +[6809] Forked 31025 +(31025) found +[6808] Forked 31026 +(31026) found +[6807] Forked 31027 +(31027) found +[6806] Forked 31028 +(31028) found +[6805] Forked 31029 +(31029) found +[6804] Forked 31030 +(31030) found +[6803] Forked 31031 +(31031) found +[6802] Forked 31032 +(31032) found +[6801] Forked 31033 +(31033) found +[6800] Forked 31034 +(31034) found +[6799] Forked 31035 +(31035) found +[6798] Forked 31036 +(31036) found +[6797] Forked 31037 +(31037) found +[6796] Forked 31038 +(31038) found +[6795] Forked 31039 +(31039) found +[6794] Forked 31040 +(31040) found +[6793] Forked 31041 +(31041) found +[6792] Forked 31042 +(31042) found +[6791] Forked 31043 +(31043) found +[6790] Forked 31044 +(31044) found +[6789] Forked 31045 +[6788] Forked 31046 +(31045) found +(31046) found +[6787] Forked 31047 +[6786] Forked 31048 +(31047) found +(31048) found +[6785] Forked 31049 +[6784] Forked 31050 +(31049) found +(31050) found +[6783] Forked 31051 +[6782] Forked 31052 +(31051) found +(31052) found +[6781] Forked 31053 +[6780] Forked 31054 +(31053) found +(31054) found +[6779] Forked 31055 +[6778] Forked 31056 +(31055) found +(31056) found +[6777] Forked 31057 +[6776] Forked 31058 +(31057) found +(31058) found +[6775] Forked 31059 +[6774] Forked 31060 +(31059) found +(31060) found +[6773] Forked 31061 +[6772] Forked 31062 +(31061) found +(31062) found +[6771] Forked 31064 +[6770] Forked 31065 +(31064) found +(31065) found +[6769] Forked 31066 +[6768] Forked 31067 +(31066) found +(31067) found +[6767] Forked 31068 +[6766] Forked 31069 +(31068) found +(31069) found +[6765] Forked 31070 +[6764] Forked 31071 +(31070) found +(31071) found +[6763] Forked 31072 +[6762] Forked 31073 +(31072) found +(31073) found +[6761] Forked 31074 +[6760] Forked 31075 +(31074) found +(31075) found +[6759] Forked 31076 +[6758] Forked 31077 +(31076) found +(31077) found +[6757] Forked 31078 +[6756] Forked 31079 +(31078) found +(31079) found +[6755] Forked 31080 +[6754] Forked 31081 +(31080) found +(31081) found +[6753] Forked 31082 +[6752] Forked 31083 +(31082) found +(31083) found +[6751] Forked 31084 +[6750] Forked 31086 +(31084) found +(31086) found +[6749] Forked 31087 +(31087) found +[6748] Forked 31088 +(31088) found +[6747] Forked 31089 +(31089) found +[6746] Forked 31090 +(31090) found +[6745] Forked 31091 +(31091) found +[6744] Forked 31092 +(31092) found +[6743] Forked 31093 +(31093) found +[6742] Forked 31094 +(31094) found +[6741] Forked 31095 +(31095) found +[6740] Forked 31096 +(31096) found +[6739] Forked 31097 +(31097) found +[6738] Forked 31098 +(31098) found +[6737] Forked 31099 +(31099) found +[6736] Forked 31100 +(31100) found +[6735] Forked 31101 +(31101) found +[6734] Forked 31102 +(31102) found +[6733] Forked 31103 +(31103) found +[6732] Forked 31104 +(31104) found +[6731] Forked 31105 +(31105) found +[6730] Forked 31106 +(31106) found +[6729] Forked 31107 +(31107) found +[6728] Forked 31108 +(31108) found +[6727] Forked 31109 +(31109) found +[6726] Forked 31110 +(31110) found +[6725] Forked 31111 +(31111) found +[6724] Forked 31112 +(31112) found +[6723] Forked 31113 +(31113) found +[6722] Forked 31114 +(31114) found +[6721] Forked 31115 +(31115) found +[6720] Forked 31116 +(31116) found +[6719] Forked 31117 +(31117) found +[6718] Forked 31118 +(31118) found +[6717] Forked 31119 +(31119) found +[6716] Forked 31120 +(31120) found +[6715] Forked 31121 +(31121) found +[6714] Forked 31122 +(31122) found +[6713] Forked 31123 +(31123) found +[6712] Forked 31124 +(31124) found +[6711] Forked 31125 +(31125) found +[6710] Forked 31126 +(31126) found +[6709] Forked 31127 +(31127) found +[6708] Forked 31128 +[6707] Forked 31129 +(31128) found +(31129) found +[6706] Forked 31130 +[6705] Forked 31131 +(31130) found +(31131) found +[6704] Forked 31132 +[6703] Forked 31133 +(31132) found +(31133) found +[6702] Forked 31134 +[6701] Forked 31135 +(31134) found +(31135) found +[6700] Forked 31136 +[6699] Forked 31137 +(31136) found +(31137) found +[6698] Forked 31138 +[6697] Forked 31139 +(31138) found +(31139) found +[6696] Forked 31140 +[6695] Forked 31141 +(31140) found +(31141) found +[6694] Forked 31142 +[6693] Forked 31143 +(31142) found +(31143) found +[6692] Forked 31144 +[6691] Forked 31145 +(31144) found +(31145) found +[6690] Forked 31146 +[6689] Forked 31147 +(31146) found +(31147) found +[6688] Forked 31148 +[6687] Forked 31149 +(31148) found +(31149) found +[6686] Forked 31150 +[6685] Forked 31151 +(31150) found +(31151) found +[6684] Forked 31152 +[6683] Forked 31153 +(31152) found +(31153) found +[6682] Forked 31154 +[6681] Forked 31155 +(31154) found +(31155) found +[6680] Forked 31156 +[6679] Forked 31157 +(31156) found +(31157) found +[6678] Forked 31158 +[6677] Forked 31159 +(31158) found +(31159) found +[6676] Forked 31160 +[6675] Forked 31161 +(31160) found +(31161) found +[6674] Forked 31162 +[6673] Forked 31163 +(31162) found +(31163) found +[6672] Forked 31164 +[6671] Forked 31165 +(31164) found +(31165) found +[6670] Forked 31166 +[6669] Forked 31167 +(31166) found +(31167) found +[6668] Forked 31168 +[6667] Forked 31169 +(31168) found +(31169) found +[6666] Forked 31170 +[6665] Forked 31171 +(31170) found +(31171) found +[6664] Forked 31172 +[6663] Forked 31173 +(31172) found +(31173) found +[6662] Forked 31174 +[6661] Forked 31175 +(31174) found +(31175) found +[6660] Forked 31176 +[6659] Forked 31177 +(31176) found +(31177) found +[6658] Forked 31178 +[6657] Forked 31179 +(31178) found +(31179) found +[6656] Forked 31180 +[6655] Forked 31181 +(31180) found +(31181) found +[6654] Forked 31182 +[6653] Forked 31183 +(31182) found +(31183) found +[6652] Forked 31184 +[6651] Forked 31185 +(31184) found +(31185) found +[6650] Forked 31186 +[6649] Forked 31187 +(31186) found +(31187) found +[6648] Forked 31188 +[6647] Forked 31189 +(31188) found +(31189) found +[6646] Forked 31190 +[6645] Forked 31191 +(31190) found +(31191) found +[6644] Forked 31192 +[6643] Forked 31193 +(31192) found +(31193) found +[6642] Forked 31194 +[6641] Forked 31195 +(31194) found +(31195) found +[6640] Forked 31196 +[6639] Forked 31197 +(31196) found +(31197) found +[6638] Forked 31198 +[6637] Forked 31199 +(31198) found +(31199) found +[6636] Forked 31200 +[6635] Forked 31201 +(31200) found +(31201) found +[6634] Forked 31202 +[6633] Forked 31203 +(31202) found +(31203) found +[6632] Forked 31204 +[6631] Forked 31205 +(31204) found +(31205) found +[6630] Forked 31206 +[6629] Forked 31207 +(31206) found +(31207) found +[6628] Forked 31208 +[6627] Forked 31209 +(31208) found +(31209) found +[6626] Forked 31210 +[6625] Forked 31211 +(31210) found +(31211) found +[6624] Forked 31212 +[6623] Forked 31213 +(31212) found +(31213) found +[6622] Forked 31214 +[6621] Forked 31215 +(31214) found +(31215) found +[6620] Forked 31216 +[6619] Forked 31217 +(31216) found +(31217) found +[6618] Forked 31218 +[6617] Forked 31219 +(31218) found +(31219) found +[6616] Forked 31220 +[6615] Forked 31221 +(31220) found +(31221) found +[6614] Forked 31222 +[6613] Forked 31223 +(31222) found +(31223) found +[6612] Forked 31224 +[6611] Forked 31225 +(31224) found +(31225) found +[6610] Forked 31226 +[6609] Forked 31227 +(31226) found +(31227) found +[6608] Forked 31228 +[6607] Forked 31229 +(31228) found +(31229) found +[6606] Forked 31230 +[6605] Forked 31231 +(31230) found +(31231) found +[6604] Forked 31232 +[6603] Forked 31233 +(31232) found +(31233) found +[6602] Forked 31234 +[6601] Forked 31235 +(31234) found +(31235) found +[6600] Forked 31236 +[6599] Forked 31237 +(31236) found +(31237) found +[6598] Forked 31238 +[6597] Forked 31239 +(31238) found +(31239) found +[6596] Forked 31240 +[6595] Forked 31241 +(31240) found +(31241) found +[6594] Forked 31242 +[6593] Forked 31243 +(31242) found +(31243) found +[6592] Forked 31244 +[6591] Forked 31245 +(31244) found +(31245) found +[6590] Forked 31246 +[6589] Forked 31247 +(31246) found +(31247) found +[6588] Forked 31248 +[6587] Forked 31249 +(31248) found +(31249) found +[6586] Forked 31250 +[6585] Forked 31251 +(31250) found +(31251) found +[6584] Forked 31252 +[6583] Forked 31253 +(31252) found +(31253) found +[6582] Forked 31254 +[6581] Forked 31255 +(31254) found +(31255) found +[6580] Forked 31256 +[6579] Forked 31257 +(31256) found +(31257) found +[6578] Forked 31258 +[6577] Forked 31259 +(31258) found +(31259) found +[6576] Forked 31260 +[6575] Forked 31261 +(31260) found +(31261) found +[6574] Forked 31262 +(31262) found +[6573] Forked 31263 +(31263) found +[6572] Forked 31264 +(31264) found +[6571] Forked 31265 +(31265) found +[6570] Forked 31266 +(31266) found +[6569] Forked 31267 +(31267) found +[6568] Forked 31268 +(31268) found +[6567] Forked 31269 +(31269) found +[6566] Forked 31270 +(31270) found +[6565] Forked 31271 +(31271) found +[6564] Forked 31272 +(31272) found +[6563] Forked 31273 +(31273) found +[6562] Forked 31274 +(31274) found +[6561] Forked 31275 +(31275) found +[6560] Forked 31276 +(31276) found +[6559] Forked 31277 +(31277) found +[6558] Forked 31278 +(31278) found +[6557] Forked 31279 +(31279) found +[6556] Forked 31280 +(31280) found +[6555] Forked 31281 +(31281) found +[6554] Forked 31282 +(31282) found +[6553] Forked 31283 +(31283) found +[6552] Forked 31284 +(31284) found +[6551] Forked 31285 +(31285) found +[6550] Forked 31286 +(31286) found +[6549] Forked 31287 +(31287) found +[6548] Forked 31288 +(31288) found +[6547] Forked 31289 +(31289) found +[6546] Forked 31290 +(31290) found +[6545] Forked 31291 +(31291) found +[6544] Forked 31292 +(31292) found +[6543] Forked 31293 +(31293) found +[6542] Forked 31294 +(31294) found +[6541] Forked 31295 +(31295) found +[6540] Forked 31296 +(31296) found +[6539] Forked 31297 +(31297) found +[6538] Forked 31298 +(31298) found +[6537] Forked 31299 +(31299) found +[6536] Forked 31300 +[6535] Forked 31301 +(31300) found +(31301) found +[6534] Forked 31302 +[6533] Forked 31303 +(31302) found +(31303) found +[6532] Forked 31304 +(31304) found +[6531] Forked 31305 +[6530] Forked 31306 +(31305) found +(31306) found +[6529] Forked 31307 +[6528] Forked 31308 +(31307) found +(31308) found +[6527] Forked 31309 +[6526] Forked 31310 +(31309) found +(31310) found +[6525] Forked 31311 +[6524] Forked 31312 +(31311) found +(31312) found +[6523] Forked 31313 +[6522] Forked 31314 +(31313) found +(31314) found +[6521] Forked 31315 +[6520] Forked 31316 +(31315) found +(31316) found +[6519] Forked 31317 +[6518] Forked 31318 +(31317) found +(31318) found +[6517] Forked 31319 +[6516] Forked 31320 +(31320) found +(31319) found +[6515] Forked 31321 +(31321) found +[6514] Forked 31322 +(31322) found +[6513] Forked 31323 +(31323) found +[6512] Forked 31324 +(31324) found +[6511] Forked 31325 +(31325) found +[6510] Forked 31326 +(31326) found +[6509] Forked 31327 +(31327) found +[6508] Forked 31328 +(31328) found +[6507] Forked 31329 +(31329) found +[6506] Forked 31330 +(31330) found +[6505] Forked 31331 +(31331) found +[6504] Forked 31332 +(31332) found +[6503] Forked 31333 +(31333) found +[6502] Forked 31334 +(31334) found +[6501] Forked 31335 +(31335) found +[6500] Forked 31336 +(31336) found +[6499] Forked 31337 +(31337) found +[6498] Forked 31338 +(31338) found +[6497] Forked 31339 +(31339) found +[6496] Forked 31340 +(31340) found +[6495] Forked 31341 +(31341) found +[6494] Forked 31342 +(31342) found +[6493] Forked 31343 +(31343) found +[6492] Forked 31344 +(31344) found +[6491] Forked 31345 +(31345) found +[6490] Forked 31346 +(31346) found +[6489] Forked 31347 +(31347) found +[6488] Forked 31348 +(31348) found +[6487] Forked 31349 +(31349) found +[6486] Forked 31350 +(31350) found +[6485] Forked 31351 +(31351) found +[6484] Forked 31352 +(31352) found +[6483] Forked 31353 +(31353) found +[6482] Forked 31354 +(31354) found +[6481] Forked 31355 +(31355) found +[6480] Forked 31356 +(31356) found +[6479] Forked 31357 +(31357) found +[6478] Forked 31358 +(31358) found +[6477] Forked 31359 +(31359) found +[6476] Forked 31360 +(31360) found +[6475] Forked 31361 +(31361) found +[6474] Forked 31362 +(31362) found +[6473] Forked 31363 +(31363) found +[6472] Forked 31364 +(31364) found +[6471] Forked 31365 +(31365) found +[6470] Forked 31366 +(31366) found +[6469] Forked 31367 +(31367) found +[6468] Forked 31368 +(31368) found +[6467] Forked 31369 +(31369) found +[6466] Forked 31370 +(31370) found +[6465] Forked 31371 +(31371) found +[6464] Forked 31372 +(31372) found +[6463] Forked 31373 +(31373) found +[6462] Forked 31374 +(31374) found +[6461] Forked 31375 +[6460] Forked 31376 +(31375) found +(31376) found +[6459] Forked 31377 +[6458] Forked 31378 +(31377) found +(31378) found +[6457] Forked 31379 +[6456] Forked 31380 +(31379) found +(31380) found +[6455] Forked 31381 +[6454] Forked 31382 +(31381) found +(31382) found +[6453] Forked 31383 +[6452] Forked 31384 +(31383) found +(31384) found +[6451] Forked 31385 +[6450] Forked 31386 +(31385) found +(31386) found +[6449] Forked 31387 +[6448] Forked 31388 +(31387) found +(31388) found +[6447] Forked 31389 +[6446] Forked 31390 +(31389) found +(31390) found +[6445] Forked 31391 +[6444] Forked 31392 +(31391) found +(31392) found +[6443] Forked 31393 +[6442] Forked 31394 +(31393) found +(31394) found +[6441] Forked 31395 +[6440] Forked 31396 +(31395) found +(31396) found +[6439] Forked 31397 +[6438] Forked 31398 +(31397) found +(31398) found +[6437] Forked 31399 +[6436] Forked 31400 +(31399) found +(31400) found +[6435] Forked 31401 +[6434] Forked 31402 +(31401) found +(31402) found +[6433] Forked 31403 +[6432] Forked 31404 +(31403) found +(31404) found +[6431] Forked 31405 +[6430] Forked 31406 +(31405) found +(31406) found +[6429] Forked 31407 +[6428] Forked 31408 +(31407) found +(31408) found +[6427] Forked 31409 +[6426] Forked 31410 +(31409) found +(31410) found +[6425] Forked 31411 +[6424] Forked 31412 +(31411) found +(31412) found +[6423] Forked 31413 +[6422] Forked 31415 +(31413) found +(31415) found +[6421] Forked 31416 +(31416) found +[6420] Forked 31417 +(31417) found +[6419] Forked 31418 +(31418) found +[6418] Forked 31419 +(31419) found +[6417] Forked 31420 +(31420) found +[6416] Forked 31421 +(31421) found +[6415] Forked 31422 +(31422) found +[6414] Forked 31423 +(31423) found +[6413] Forked 31424 +(31424) found +[6412] Forked 31425 +(31425) found +[6411] Forked 31426 +(31426) found +[6410] Forked 31427 +(31427) found +[6409] Forked 31428 +(31428) found +[6408] Forked 31429 +(31429) found +[6407] Forked 31430 +(31430) found +[6406] Forked 31431 +(31431) found +[6405] Forked 31432 +(31432) found +[6404] Forked 31433 +(31433) found +[6403] Forked 31434 +(31434) found +[6402] Forked 31435 +(31435) found +[6401] Forked 31436 +(31436) found +[6400] Forked 31437 +(31437) found +[6399] Forked 31438 +(31438) found +[6398] Forked 31439 +(31439) found +[6397] Forked 31440 +(31440) found +[6396] Forked 31441 +(31441) found +[6395] Forked 31442 +(31442) found +[6394] Forked 31443 +(31443) found +[6393] Forked 31444 +(31444) found +[6392] Forked 31445 +(31445) found +[6391] Forked 31446 +(31446) found +[6390] Forked 31447 +(31447) found +[6389] Forked 31448 +(31448) found +[6388] Forked 31449 +(31449) found +[6387] Forked 31450 +(31450) found +[6386] Forked 31451 +(31451) found +[6385] Forked 31452 +(31452) found +[6384] Forked 31453 +(31453) found +[6383] Forked 31454 +(31454) found +[6382] Forked 31455 +(31455) found +[6381] Forked 31456 +(31456) found +[6380] Forked 31457 +(31457) found +[6379] Forked 31458 +(31458) found +[6378] Forked 31459 +(31459) found +[6377] Forked 31460 +(31460) found +[6376] Forked 31461 +(31461) found +[6375] Forked 31462 +(31462) found +[6374] Forked 31463 +(31463) found +[6373] Forked 31464 +(31464) found +[6372] Forked 31465 +(31465) found +[6371] Forked 31466 +(31466) found +[6370] Forked 31467 +(31467) found +[6369] Forked 31468 +(31468) found +[6368] Forked 31469 +(31469) found +[6367] Forked 31470 +(31470) found +[6366] Forked 31471 +(31471) found +[6365] Forked 31472 +(31472) found +[6364] Forked 31473 +(31473) found +[6363] Forked 31474 +(31474) found +[6362] Forked 31475 +(31475) found +[6361] Forked 31476 +(31476) found +[6360] Forked 31477 +(31477) found +[6359] Forked 31478 +(31478) found +[6358] Forked 31479 +(31479) found +[6357] Forked 31480 +(31480) found +[6356] Forked 31481 +(31481) found +[6355] Forked 31482 +(31482) found +[6354] Forked 31483 +(31483) found +[6353] Forked 31484 +(31484) found +[6352] Forked 31485 +(31485) found +[6351] Forked 31486 +(31486) found +[6350] Forked 31487 +(31487) found +[6349] Forked 31488 +(31488) found +[6348] Forked 31489 +[6347] Forked 31490 +(31489) found +(31490) found +[6346] Forked 31491 +[6345] Forked 31492 +(31491) found +(31492) found +[6344] Forked 31493 +[6343] Forked 31494 +(31493) found +(31494) found +[6342] Forked 31495 +[6341] Forked 31496 +(31495) found +(31496) found +[6340] Forked 31497 +[6339] Forked 31498 +(31497) found +(31498) found +[6338] Forked 31499 +[6337] Forked 31500 +(31499) found +(31500) found +[6336] Forked 31501 +[6335] Forked 31502 +(31501) found +(31502) found +[6334] Forked 31503 +[6333] Forked 31504 +(31503) found +(31504) found +[6332] Forked 31505 +[6331] Forked 31506 +(31505) found +(31506) found +[6330] Forked 31507 +[6329] Forked 31508 +(31507) found +(31508) found +[6328] Forked 31509 +[6327] Forked 31510 +(31509) found +(31510) found +[6326] Forked 31511 +[6325] Forked 31512 +(31511) found +(31512) found +[6324] Forked 31513 +[6323] Forked 31514 +(31513) found +(31514) found +[6322] Forked 31515 +[6321] Forked 31516 +(31515) found +(31516) found +[6320] Forked 31517 +[6319] Forked 31518 +(31517) found +(31518) found +[6318] Forked 31519 +[6317] Forked 31520 +(31519) found +(31520) found +[6316] Forked 31521 +[6315] Forked 31522 +(31521) found +(31522) found +[6314] Forked 31523 +[6313] Forked 31524 +(31523) found +(31524) found +[6312] Forked 31525 +[6311] Forked 31526 +(31525) found +(31526) found +[6310] Forked 31527 +[6309] Forked 31528 +(31527) found +(31528) found +[6308] Forked 31529 +[6307] Forked 31530 +(31529) found +(31530) found +[6306] Forked 31531 +[6305] Forked 31532 +(31531) found +(31532) found +[6304] Forked 31533 +[6303] Forked 31534 +(31533) found +(31534) found +[6302] Forked 31535 +(31535) found +[6301] Forked 31536 +(31536) found +[6300] Forked 31537 +(31537) found +[6299] Forked 31538 +(31538) found +[6298] Forked 31539 +(31539) found +[6297] Forked 31540 +(31540) found +[6296] Forked 31541 +(31541) found +[6295] Forked 31542 +(31542) found +[6294] Forked 31543 +(31543) found +[6293] Forked 31544 +(31544) found +[6292] Forked 31545 +(31545) found +[6291] Forked 31546 +(31546) found +[6290] Forked 31547 +(31547) found +[6289] Forked 31548 +(31548) found +[6288] Forked 31549 +(31549) found +[6287] Forked 31550 +(31550) found +[6286] Forked 31551 +(31551) found +[6285] Forked 31552 +(31552) found +[6284] Forked 31553 +(31553) found +[6283] Forked 31554 +(31554) found +[6282] Forked 31555 +(31555) found +[6281] Forked 31556 +(31556) found +[6280] Forked 31557 +(31557) found +[6279] Forked 31558 +(31558) found +[6278] Forked 31559 +(31559) found +[6277] Forked 31560 +(31560) found +[6276] Forked 31561 +(31561) found +[6275] Forked 31562 +(31562) found +[6274] Forked 31563 +(31563) found +[6273] Forked 31564 +(31564) found +[6272] Forked 31565 +(31565) found +[6271] Forked 31566 +(31566) found +[6270] Forked 31567 +(31567) found +[6269] Forked 31568 +(31568) found +[6268] Forked 31569 +(31569) found +[6267] Forked 31570 +(31570) found +[6266] Forked 31571 +[6265] Forked 31572 +(31571) found +(31572) found +[6264] Forked 31573 +[6263] Forked 31574 +(31573) found +(31574) found +[6262] Forked 31575 +[6261] Forked 31576 +(31575) found +(31576) found +[6260] Forked 31577 +[6259] Forked 31578 +(31577) found +(31578) found +[6258] Forked 31579 +[6257] Forked 31580 +(31579) found +(31580) found +[6256] Forked 31581 +[6255] Forked 31582 +(31581) found +(31582) found +[6254] Forked 31583 +[6253] Forked 31584 +(31583) found +(31584) found +[6252] Forked 31585 +[6251] Forked 31586 +(31585) found +(31586) found +[6250] Forked 31587 +[6249] Forked 31588 +(31587) found +(31588) found +[6248] Forked 31589 +[6247] Forked 31590 +(31589) found +(31590) found +[6246] Forked 31591 +[6245] Forked 31592 +(31591) found +(31592) found +[6244] Forked 31593 +[6243] Forked 31594 +(31593) found +(31594) found +[6242] Forked 31595 +[6241] Forked 31596 +(31595) found +(31596) found +[6240] Forked 31597 +[6239] Forked 31598 +(31597) found +(31598) found +[6238] Forked 31599 +[6237] Forked 31600 +(31599) found +(31600) found +[6236] Forked 31601 +[6235] Forked 31602 +(31601) found +(31602) found +[6234] Forked 31603 +[6233] Forked 31604 +(31603) found +(31604) found +[6232] Forked 31605 +[6231] Forked 31606 +(31605) found +(31606) found +[6230] Forked 31607 +[6229] Forked 31608 +(31607) found +(31608) found +[6228] Forked 31609 +[6227] Forked 31610 +(31609) found +(31610) found +[6226] Forked 31611 +[6225] Forked 31612 +(31611) found +(31612) found +[6224] Forked 31613 +[6223] Forked 31614 +(31613) found +(31614) found +[6222] Forked 31615 +[6221] Forked 31616 +(31615) found +(31616) found +[6220] Forked 31617 +(31617) found +[6219] Forked 31618 +(31618) found +[6218] Forked 31619 +(31619) found +[6217] Forked 31620 +(31620) found +[6216] Forked 31621 +(31621) found +[6215] Forked 31622 +(31622) found +[6214] Forked 31623 +(31623) found +[6213] Forked 31624 +(31624) found +[6212] Forked 31625 +(31625) found +[6211] Forked 31626 +(31626) found +[6210] Forked 31627 +(31627) found +[6209] Forked 31628 +(31628) found +[6208] Forked 31629 +(31629) found +[6207] Forked 31630 +(31630) found +[6206] Forked 31631 +(31631) found +[6205] Forked 31632 +(31632) found +[6204] Forked 31633 +(31633) found +[6203] Forked 31634 +(31634) found +[6202] Forked 31635 +(31635) found +[6201] Forked 31636 +(31636) found +[6200] Forked 31637 +(31637) found +[6199] Forked 31638 +(31638) found +[6198] Forked 31639 +(31639) found +[6197] Forked 31640 +(31640) found +[6196] Forked 31641 +(31641) found +[6195] Forked 31642 +(31642) found +[6194] Forked 31643 +(31643) found +[6193] Forked 31644 +(31644) found +[6192] Forked 31645 +(31645) found +[6191] Forked 31646 +(31646) found +[6190] Forked 31647 +(31647) found +[6189] Forked 31648 +(31648) found +[6188] Forked 31649 +(31649) found +[6187] Forked 31650 +(31650) found +[6186] Forked 31651 +(31651) found +[6185] Forked 31652 +(31652) found +[6184] Forked 31653 +[6183] Forked 31654 +(31653) found +(31654) found +[6182] Forked 31655 +[6181] Forked 31656 +(31655) found +(31656) found +[6180] Forked 31657 +[6179] Forked 31658 +(31657) found +(31658) found +[6178] Forked 31659 +[6177] Forked 31660 +(31659) found +(31660) found +[6176] Forked 31661 +[6175] Forked 31662 +(31661) found +(31662) found +[6174] Forked 31663 +[6173] Forked 31664 +(31663) found +(31664) found +[6172] Forked 31665 +[6171] Forked 31666 +(31665) found +(31666) found +[6170] Forked 31667 +[6169] Forked 31668 +(31667) found +(31668) found +[6168] Forked 31669 +[6167] Forked 31670 +(31669) found +(31670) found +[6166] Forked 31671 +[6165] Forked 31672 +(31671) found +(31672) found +[6164] Forked 31673 +[6163] Forked 31674 +(31673) found +(31674) found +[6162] Forked 31675 +[6161] Forked 31676 +(31675) found +(31676) found +[6160] Forked 31677 +[6159] Forked 31678 +(31677) found +(31678) found +[6158] Forked 31679 +[6157] Forked 31680 +(31679) found +(31680) found +[6156] Forked 31681 +[6155] Forked 31682 +(31681) found +(31682) found +[6154] Forked 31683 +[6153] Forked 31684 +(31683) found +(31684) found +[6152] Forked 31685 +[6151] Forked 31686 +(31685) found +(31686) found +[6150] Forked 31687 +[6149] Forked 31688 +(31687) found +(31688) found +[6148] Forked 31689 +[6147] Forked 31691 +(31689) found +(31691) found +[6146] Forked 31692 +(31692) found +[6145] Forked 31693 +(31693) found +[6144] Forked 31694 +(31694) found +[6143] Forked 31695 +(31695) found +[6142] Forked 31696 +(31696) found +[6141] Forked 31697 +(31697) found +[6140] Forked 31698 +(31698) found +[6139] Forked 31699 +(31699) found +[6138] Forked 31700 +(31700) found +[6137] Forked 31701 +(31701) found +[6136] Forked 31702 +(31702) found +[6135] Forked 31703 +(31703) found +[6134] Forked 31704 +(31704) found +[6133] Forked 31705 +(31705) found +[6132] Forked 31706 +(31706) found +[6131] Forked 31707 +(31707) found +[6130] Forked 31708 +(31708) found +[6129] Forked 31709 +(31709) found +[6128] Forked 31710 +(31710) found +[6127] Forked 31711 +(31711) found +[6126] Forked 31712 +(31712) found +[6125] Forked 31713 +(31713) found +[6124] Forked 31714 +(31714) found +[6123] Forked 31715 +(31715) found +[6122] Forked 31716 +(31716) found +[6121] Forked 31717 +(31717) found +[6120] Forked 31718 +(31718) found +[6119] Forked 31719 +(31719) found +[6118] Forked 31720 +(31720) found +[6117] Forked 31721 +(31721) found +[6116] Forked 31722 +(31722) found +[6115] Forked 31723 +(31723) found +[6114] Forked 31724 +(31724) found +[6113] Forked 31725 +(31725) found +[6112] Forked 31726 +(31726) found +[6111] Forked 31727 +(31727) found +[6110] Forked 31728 +(31728) found +[6109] Forked 31729 +(31729) found +[6108] Forked 31730 +(31730) found +[6107] Forked 31731 +(31731) found +[6106] Forked 31732 +(31732) found +[6105] Forked 31733 +(31733) found +[6104] Forked 31734 +(31734) found +[6103] Forked 31735 +(31735) found +[6102] Forked 31736 +(31736) found +[6101] Forked 31737 +(31737) found +[6100] Forked 31738 +(31738) found +[6099] Forked 31739 +(31739) found +[6098] Forked 31740 +(31740) found +[6097] Forked 31741 +(31741) found +[6096] Forked 31742 +(31742) found +[6095] Forked 31743 +(31743) found +[6094] Forked 31744 +(31744) found +[6093] Forked 31745 +(31745) found +[6092] Forked 31746 +(31746) found +[6091] Forked 31747 +(31747) found +[6090] Forked 31748 +(31748) found +[6089] Forked 31749 +(31749) found +[6088] Forked 31750 +(31750) found +[6087] Forked 31751 +(31751) found +[6086] Forked 31752 +(31752) found +[6085] Forked 31753 +(31753) found +[6084] Forked 31754 +(31754) found +[6083] Forked 31755 +(31755) found +[6082] Forked 31756 +(31756) found +[6081] Forked 31757 +(31757) found +[6080] Forked 31758 +(31758) found +[6079] Forked 31759 +(31759) found +[6078] Forked 31760 +(31760) found +[6077] Forked 31761 +(31761) found +[6076] Forked 31762 +(31762) found +[6075] Forked 31763 +(31763) found +[6074] Forked 31764 +(31764) found +[6073] Forked 31765 +(31765) found +[6072] Forked 31766 +[6071] Forked 31767 +(31766) found +(31767) found +[6070] Forked 31768 +[6069] Forked 31769 +(31768) found +(31769) found +[6068] Forked 31770 +[6067] Forked 31771 +(31770) found +(31771) found +[6066] Forked 31772 +[6065] Forked 31773 +(31772) found +(31773) found +[6064] Forked 31774 +[6063] Forked 31775 +(31774) found +(31775) found +[6062] Forked 31776 +[6061] Forked 31777 +(31776) found +(31777) found +[6060] Forked 31778 +[6059] Forked 31779 +(31778) found +(31779) found +[6058] Forked 31780 +[6057] Forked 31781 +(31780) found +(31781) found +[6056] Forked 31782 +[6055] Forked 31783 +(31782) found +(31783) found +[6054] Forked 31784 +[6053] Forked 31785 +(31784) found +(31785) found +[6052] Forked 31786 +[6051] Forked 31787 +(31786) found +(31787) found +[6050] Forked 31788 +[6049] Forked 31789 +(31788) found +(31789) found +[6048] Forked 31790 +[6047] Forked 31791 +(31790) found +(31791) found +[6046] Forked 31792 +[6045] Forked 31793 +(31792) found +(31793) found +[6044] Forked 31794 +[6043] Forked 31795 +(31794) found +(31795) found +[6042] Forked 31796 +[6041] Forked 31797 +(31796) found +(31797) found +[6040] Forked 31798 +[6039] Forked 31799 +(31798) found +(31799) found +[6038] Forked 31800 +[6037] Forked 31801 +(31800) found +(31801) found +[6036] Forked 31802 +[6035] Forked 31803 +(31802) found +(31803) found +[6034] Forked 31804 +[6033] Forked 31805 +(31804) found +(31805) found +[6032] Forked 31806 +[6031] Forked 31807 +(31806) found +(31807) found +[6030] Forked 31808 +[6029] Forked 31809 +(31808) found +(31809) found +[6028] Forked 31810 +[6027] Forked 31811 +(31810) found +(31811) found +[6026] Forked 31812 +[6025] Forked 31813 +(31812) found +(31813) found +[6024] Forked 31814 +[6023] Forked 31815 +(31814) found +(31815) found +[6022] Forked 31816 +[6021] Forked 31817 +(31816) found +(31817) found +[6020] Forked 31818 +[6019] Forked 31819 +(31818) found +(31819) found +[6018] Forked 31820 +[6017] Forked 31821 +(31820) found +(31821) found +[6016] Forked 31822 +[6015] Forked 31823 +(31822) found +(31823) found +[6014] Forked 31824 +[6013] Forked 31825 +(31824) found +(31825) found +[6012] Forked 31826 +[6011] Forked 31827 +(31826) found +(31827) found +[6010] Forked 31828 +[6009] Forked 31829 +(31828) found +(31829) found +[6008] Forked 31830 +[6007] Forked 31831 +(31830) found +(31831) found +[6006] Forked 31832 +[6005] Forked 31833 +(31832) found +(31833) found +[6004] Forked 31834 +[6003] Forked 31835 +(31834) found +(31835) found +[6002] Forked 31836 +[6001] Forked 31837 +(31836) found +(31837) found +[6000] Forked 31838 +[5999] Forked 31839 +(31838) found +(31839) found +[5998] Forked 31840 +[5997] Forked 31841 +(31840) found +(31841) found +[5996] Forked 31842 +[5995] Forked 31843 +(31842) found +(31843) found +[5994] Forked 31844 +[5993] Forked 31845 +(31844) found +(31845) found +[5992] Forked 31846 +[5991] Forked 31847 +(31846) found +(31847) found +[5990] Forked 31848 +[5989] Forked 31849 +(31848) found +(31849) found +[5988] Forked 31850 +[5987] Forked 31851 +(31850) found +(31851) found +[5986] Forked 31852 +[5985] Forked 31853 +(31852) found +(31853) found +[5984] Forked 31854 +[5983] Forked 31855 +(31854) found +(31855) found +[5982] Forked 31856 +[5981] Forked 31857 +(31856) found +(31857) found +[5980] Forked 31858 +(31858) found +[5979] Forked 31859 +(31859) found +[5978] Forked 31860 +(31860) found +[5977] Forked 31861 +(31861) found +[5976] Forked 31862 +(31862) found +[5975] Forked 31863 +(31863) found +[5974] Forked 31864 +(31864) found +[5973] Forked 31865 +(31865) found +[5972] Forked 31866 +(31866) found +[5971] Forked 31867 +(31867) found +[5970] Forked 31868 +(31868) found +[5969] Forked 31869 +(31869) found +[5968] Forked 31870 +(31870) found +[5967] Forked 31871 +(31871) found +[5966] Forked 31872 +(31872) found +[5965] Forked 31873 +(31873) found +[5964] Forked 31874 +(31874) found +[5963] Forked 31875 +(31875) found +[5962] Forked 31876 +(31876) found +[5961] Forked 31877 +(31877) found +[5960] Forked 31878 +(31878) found +[5959] Forked 31879 +(31879) found +[5958] Forked 31880 +(31880) found +[5957] Forked 31881 +(31881) found +[5956] Forked 31882 +(31882) found +[5955] Forked 31883 +(31883) found +[5954] Forked 31884 +(31884) found +[5953] Forked 31885 +(31885) found +[5952] Forked 31886 +(31886) found +[5951] Forked 31887 +(31887) found +[5950] Forked 31888 +(31888) found +[5949] Forked 31889 +(31889) found +[5948] Forked 31890 +(31890) found +[5947] Forked 31891 +(31891) found +[5946] Forked 31892 +(31892) found +[5945] Forked 31893 +[5944] Forked 31894 +(31893) found +(31894) found +[5943] Forked 31895 +[5942] Forked 31896 +(31895) found +(31896) found +[5941] Forked 31897 +[5940] Forked 31898 +(31897) found +(31898) found +[5939] Forked 31899 +[5938] Forked 31900 +(31899) found +(31900) found +[5937] Forked 31901 +[5936] Forked 31902 +(31901) found +(31902) found +[5935] Forked 31903 +[5934] Forked 31904 +(31903) found +(31904) found +[5933] Forked 31905 +[5932] Forked 31906 +(31905) found +(31906) found +[5931] Forked 31907 +[5930] Forked 31908 +(31907) found +(31908) found +[5929] Forked 31909 +[5928] Forked 31910 +(31909) found +(31910) found +[5927] Forked 31911 +[5926] Forked 31912 +(31911) found +(31912) found +[5925] Forked 31913 +[5924] Forked 31914 +(31913) found +(31914) found +[5923] Forked 31915 +[5922] Forked 31916 +(31915) found +(31916) found +[5921] Forked 31917 +[5920] Forked 31918 +(31917) found +(31918) found +[5919] Forked 31919 +[5918] Forked 31920 +(31919) found +(31920) found +[5917] Forked 31921 +[5916] Forked 31922 +(31921) found +(31922) found +[5915] Forked 31923 +[5914] Forked 31924 +(31923) found +(31924) found +[5913] Forked 31925 +[5912] Forked 31926 +(31925) found +(31926) found +[5911] Forked 31927 +[5910] Forked 31928 +(31927) found +(31928) found +[5909] Forked 31929 +[5908] Forked 31930 +(31929) found +(31930) found +[5907] Forked 31931 +[5906] Forked 31933 +(31931) found +(31933) found +[5905] Forked 31934 +(31934) found +[5904] Forked 31935 +(31935) found +[5903] Forked 31936 +(31936) found +[5902] Forked 31937 +(31937) found +[5901] Forked 31938 +(31938) found +[5900] Forked 31939 +(31939) found +[5899] Forked 31940 +(31940) found +[5898] Forked 31941 +(31941) found +[5897] Forked 31942 +(31942) found +[5896] Forked 31943 +(31943) found +[5895] Forked 31944 +(31944) found +[5894] Forked 31945 +(31945) found +[5893] Forked 31946 +(31946) found +[5892] Forked 31947 +(31947) found +[5891] Forked 31948 +(31948) found +[5890] Forked 31949 +(31949) found +[5889] Forked 31950 +(31950) found +[5888] Forked 31951 +(31951) found +[5887] Forked 31952 +(31952) found +[5886] Forked 31953 +[5885] Forked 31954 +(31953) found +(31954) found +[5884] Forked 31955 +[5883] Forked 31956 +(31955) found +(31956) found +[5882] Forked 31957 +[5881] Forked 31958 +(31957) found +(31958) found +[5880] Forked 31959 +[5879] Forked 31960 +(31959) found +(31960) found +[5878] Forked 31961 +[5877] Forked 31962 +(31961) found +(31962) found +[5876] Forked 31963 +[5875] Forked 31964 +(31963) found +(31964) found +[5874] Forked 31965 +[5873] Forked 31966 +(31965) found +(31966) found +[5872] Forked 31967 +[5871] Forked 31968 +(31967) found +(31968) found +[5870] Forked 31969 +[5869] Forked 31970 +(31969) found +(31970) found +[5868] Forked 31971 +[5867] Forked 31972 +(31971) found +(31972) found +[5866] Forked 31973 +[5865] Forked 31974 +(31973) found +(31974) found +[5864] Forked 31975 +[5863] Forked 31976 +(31975) found +(31976) found +[5862] Forked 31977 +(31977) found +[5861] Forked 31978 +(31978) found +[5860] Forked 31979 +(31979) found +[5859] Forked 31980 +(31980) found +[5858] Forked 31981 +(31981) found +[5857] Forked 31982 +(31982) found +[5856] Forked 31983 +(31983) found +[5855] Forked 31984 +(31984) found +[5854] Forked 31985 +(31985) found +[5853] Forked 31986 +(31986) found +[5852] Forked 31987 +(31987) found +[5851] Forked 31988 +(31988) found +[5850] Forked 31989 +(31989) found +[5849] Forked 31990 +(31990) found +[5848] Forked 31991 +(31991) found +[5847] Forked 31992 +(31992) found +[5846] Forked 31993 +(31993) found +[5845] Forked 31994 +(31994) found +[5844] Forked 31995 +(31995) found +[5843] Forked 31996 +(31996) found +[5842] Forked 31997 +(31997) found +[5841] Forked 31998 +(31998) found +[5840] Forked 31999 +(31999) found +[5839] Forked 32000 +(32000) found +[5838] Forked 32001 +(32001) found +[5837] Forked 32002 +(32002) found +[5836] Forked 32003 +(32003) found +[5835] Forked 32004 +(32004) found +[5834] Forked 32005 +(32005) found +[5833] Forked 32006 +(32006) found +[5832] Forked 32007 +(32007) found +[5831] Forked 32008 +(32008) found +[5830] Forked 32009 +(32009) found +[5829] Forked 32010 +(32010) found +[5828] Forked 32011 +(32011) found +[5827] Forked 32012 +(32012) found +[5826] Forked 32013 +(32013) found +[5825] Forked 32014 +(32014) found +[5824] Forked 32015 +(32015) found +[5823] Forked 32016 +[5822] Forked 32017 +(32016) found +(32017) found +[5821] Forked 32018 +[5820] Forked 32019 +(32018) found +(32019) found +[5819] Forked 32020 +[5818] Forked 32021 +(32020) found +(32021) found +[5817] Forked 32022 +[5816] Forked 32023 +(32022) found +(32023) found +[5815] Forked 32024 +[5814] Forked 32025 +(32024) found +(32025) found +[5813] Forked 32026 +[5812] Forked 32027 +(32026) found +(32027) found +[5811] Forked 32028 +[5810] Forked 32029 +(32028) found +(32029) found +[5809] Forked 32030 +[5808] Forked 32031 +(32030) found +(32031) found +[5807] Forked 32032 +[5806] Forked 32033 +(32032) found +(32033) found +[5805] Forked 32034 +[5804] Forked 32035 +(32034) found +(32035) found +[5803] Forked 32036 +[5802] Forked 32037 +(32036) found +(32037) found +[5801] Forked 32038 +[5800] Forked 32039 +(32038) found +(32039) found +[5799] Forked 32040 +[5798] Forked 32041 +(32040) found +(32041) found +[5797] Forked 32042 +[5796] Forked 32043 +(32042) found +(32043) found +[5795] Forked 32044 +[5794] Forked 32045 +(32044) found +(32045) found +[5793] Forked 32046 +[5792] Forked 32047 +(32047) found +(32046) found +[5791] Forked 32048 +(32048) found +[5790] Forked 32049 +(32049) found +[5789] Forked 32050 +(32050) found +[5788] Forked 32051 +(32051) found +[5787] Forked 32052 +(32052) found +[5786] Forked 32053 +(32053) found +[5785] Forked 32054 +(32054) found +[5784] Forked 32055 +(32055) found +[5783] Forked 32056 +(32056) found +[5782] Forked 32057 +(32057) found +[5781] Forked 32058 +(32058) found +[5780] Forked 32059 +(32059) found +[5779] Forked 32060 +(32060) found +[5778] Forked 32061 +(32061) found +[5777] Forked 32062 +(32062) found +[5776] Forked 32063 +(32063) found +[5775] Forked 32064 +(32064) found +[5774] Forked 32065 +(32065) found +[5773] Forked 32066 +[5772] Forked 32067 +(32066) found +(32067) found +[5771] Forked 32068 +[5770] Forked 32069 +(32068) found +(32069) found +[5769] Forked 32070 +[5768] Forked 32071 +(32070) found +(32071) found +[5767] Forked 32072 +[5766] Forked 32073 +(32072) found +(32073) found +[5765] Forked 32074 +[5764] Forked 32075 +(32074) found +(32075) found +[5763] Forked 32076 +[5762] Forked 32077 +(32076) found +(32077) found +[5761] Forked 32078 +[5760] Forked 32079 +(32078) found +(32079) found +[5759] Forked 32080 +[5758] Forked 32081 +(32080) found +(32081) found +[5757] Forked 32082 +[5756] Forked 32083 +(32082) found +(32083) found +[5755] Forked 32084 +[5754] Forked 32085 +(32084) found +(32085) found +[5753] Forked 32086 +[5752] Forked 32087 +(32086) found +(32087) found +[5751] Forked 32088 +[5750] Forked 32089 +(32089) found +(32088) found +[5749] Forked 32090 +(32090) found +[5748] Forked 32091 +(32091) found +[5747] Forked 32092 +(32092) found +[5746] Forked 32093 +(32093) found +[5745] Forked 32094 +(32094) found +[5744] Forked 32095 +(32095) found +[5743] Forked 32096 +(32096) found +[5742] Forked 32097 +(32097) found +[5741] Forked 32098 +(32098) found +[5740] Forked 32099 +(32099) found +[5739] Forked 32100 +(32100) found +[5738] Forked 32101 +(32101) found +[5737] Forked 32102 +(32102) found +[5736] Forked 32103 +(32103) found +[5735] Forked 32104 +(32104) found +[5734] Forked 32105 +(32105) found +[5733] Forked 32106 +(32106) found +[5732] Forked 32107 +(32107) found +[5731] Forked 32108 +(32108) found +[5730] Forked 32109 +(32109) found +[5729] Forked 32110 +(32110) found +[5728] Forked 32111 +(32111) found +[5727] Forked 32112 +(32112) found +[5726] Forked 32113 +(32113) found +[5725] Forked 32115 +(32115) found +[5724] Forked 32116 +(32116) found +[5723] Forked 32117 +(32117) found +[5722] Forked 32118 +(32118) found +[5721] Forked 32119 +(32119) found +[5720] Forked 32120 +(32120) found +[5719] Forked 32121 +(32121) found +[5718] Forked 32122 +(32122) found +[5717] Forked 32123 +(32123) found +[5716] Forked 32124 +(32124) found +[5715] Forked 32125 +(32125) found +[5714] Forked 32126 +(32126) found +[5713] Forked 32127 +(32127) found +[5712] Forked 32128 +(32128) found +[5711] Forked 32129 +(32129) found +[5710] Forked 32130 +(32130) found +[5709] Forked 32131 +(32131) found +[5708] Forked 32132 +(32132) found +[5707] Forked 32133 +(32133) found +[5706] Forked 32134 +(32134) found +[5705] Forked 32135 +(32135) found +[5704] Forked 32136 +(32136) found +[5703] Forked 32137 +(32137) found +[5702] Forked 32138 +(32138) found +[5701] Forked 32139 +(32139) found +[5700] Forked 32140 +(32140) found +[5699] Forked 32141 +[5698] Forked 32142 +(32141) found +(32142) found +[5697] Forked 32143 +[5696] Forked 32144 +(32143) found +(32144) found +[5695] Forked 32145 +[5694] Forked 32146 +(32145) found +(32146) found +[5693] Forked 32147 +[5692] Forked 32148 +(32147) found +(32148) found +[5691] Forked 32149 +[5690] Forked 32150 +(32149) found +(32150) found +[5689] Forked 32151 +[5688] Forked 32152 +(32151) found +(32152) found +[5687] Forked 32153 +[5686] Forked 32154 +(32153) found +(32154) found +[5685] Forked 32155 +[5684] Forked 32157 +(32155) found +(32157) found +[5683] Forked 32158 +(32158) found +[5682] Forked 32159 +(32159) found +[5681] Forked 32160 +(32160) found +[5680] Forked 32161 +(32161) found +[5679] Forked 32162 +(32162) found +[5678] Forked 32163 +(32163) found +[5677] Forked 32164 +(32164) found +[5676] Forked 32165 +(32165) found +[5675] Forked 32166 +(32166) found +[5674] Forked 32167 +(32167) found +[5673] Forked 32168 +(32168) found +[5672] Forked 32169 +(32169) found +[5671] Forked 32170 +(32170) found +[5670] Forked 32171 +(32171) found +[5669] Forked 32172 +(32172) found +[5668] Forked 32173 +(32173) found +[5667] Forked 32174 +(32174) found +[5666] Forked 32175 +(32175) found +[5665] Forked 32176 +(32176) found +[5664] Forked 32177 +(32177) found +[5663] Forked 32178 +(32178) found +[5662] Forked 32179 +(32179) found +[5661] Forked 32180 +(32180) found +[5660] Forked 32181 +(32181) found +[5659] Forked 32182 +(32182) found +[5658] Forked 32183 +(32183) found +[5657] Forked 32184 +(32184) found +[5656] Forked 32185 +(32185) found +[5655] Forked 32186 +(32186) found +[5654] Forked 32187 +(32187) found +[5653] Forked 32188 +(32188) found +[5652] Forked 32189 +(32189) found +[5651] Forked 32190 +(32190) found +[5650] Forked 32191 +(32191) found +[5649] Forked 32192 +(32192) found +[5648] Forked 32193 +(32193) found +[5647] Forked 32194 +(32194) found +[5646] Forked 32195 +(32195) found +[5645] Forked 32196 +(32196) found +[5644] Forked 32197 +(32197) found +[5643] Forked 32198 +(32198) found +[5642] Forked 32199 +(32199) found +[5641] Forked 32200 +(32200) found +[5640] Forked 32201 +(32201) found +[5639] Forked 32202 +(32202) found +[5638] Forked 32203 +(32203) found +[5637] Forked 32204 +(32204) found +[5636] Forked 32205 +(32205) found +[5635] Forked 32206 +(32206) found +[5634] Forked 32207 +(32207) found +[5633] Forked 32208 +(32208) found +[5632] Forked 32209 +(32209) found +[5631] Forked 32210 +(32210) found +[5630] Forked 32211 +(32211) found +[5629] Forked 32212 +(32212) found +[5628] Forked 32213 +(32213) found +[5627] Forked 32214 +(32214) found +[5626] Forked 32215 +(32215) found +[5625] Forked 32216 +(32216) found +[5624] Forked 32217 +(32217) found +[5623] Forked 32218 +(32218) found +[5622] Forked 32219 +(32219) found +[5621] Forked 32220 +(32220) found +[5620] Forked 32221 +(32221) found +[5619] Forked 32222 +(32222) found +[5618] Forked 32223 +(32223) found +[5617] Forked 32224 +(32224) found +[5616] Forked 32225 +(32225) found +[5615] Forked 32226 +(32226) found +[5614] Forked 32227 +(32227) found +[5613] Forked 32228 +(32228) found +[5612] Forked 32229 +(32229) found +[5611] Forked 32230 +(32230) found +[5610] Forked 32231 +(32231) found +[5609] Forked 32232 +(32232) found +[5608] Forked 32233 +(32233) found +[5607] Forked 32234 +(32234) found +[5606] Forked 32235 +(32235) found +[5605] Forked 32236 +(32236) found +[5604] Forked 32237 +(32237) found +[5603] Forked 32238 +(32238) found +[5602] Forked 32239 +(32239) found +[5601] Forked 32240 +(32240) found +[5600] Forked 32241 +(32241) found +[5599] Forked 32242 +(32242) found +[5598] Forked 32243 +(32243) found +[5597] Forked 32244 +(32244) found +[5596] Forked 32245 +(32245) found +[5595] Forked 32246 +(32246) found +[5594] Forked 32247 +(32247) found +[5593] Forked 32248 +(32248) found +[5592] Forked 32249 +[5591] Forked 32250 +(32249) found +(32250) found +[5590] Forked 32251 +[5589] Forked 32252 +(32251) found +(32252) found +[5588] Forked 32253 +[5587] Forked 32254 +(32253) found +(32254) found +[5586] Forked 32255 +[5585] Forked 32256 +(32255) found +(32256) found +[5584] Forked 32257 +[5583] Forked 32258 +(32257) found +(32258) found +[5582] Forked 32259 +[5581] Forked 32260 +(32259) found +(32260) found +[5580] Forked 32261 +[5579] Forked 32262 +(32261) found +(32262) found +[5578] Forked 32263 +[5577] Forked 32264 +(32263) found +(32264) found +[5576] Forked 32265 +[5575] Forked 32266 +(32265) found +(32266) found +[5574] Forked 32267 +[5573] Forked 32268 +(32267) found +(32268) found +[5572] Forked 32269 +[5571] Forked 32270 +(32269) found +(32270) found +[5570] Forked 32271 +[5569] Forked 32272 +(32271) found +(32272) found +[5568] Forked 32273 +[5567] Forked 32274 +(32273) found +(32274) found +[5566] Forked 32275 +[5565] Forked 32276 +(32275) found +(32276) found +[5564] Forked 32277 +[5563] Forked 32278 +(32277) found +(32278) found +[5562] Forked 32279 +[5561] Forked 32280 +(32279) found +(32280) found +[5560] Forked 32281 +[5559] Forked 32282 +(32281) found +(32282) found +[5558] Forked 32283 +[5557] Forked 32284 +(32283) found +(32284) found +[5556] Forked 32285 +[5555] Forked 32286 +(32285) found +(32286) found +[5554] Forked 32287 +[5553] Forked 32288 +(32287) found +(32288) found +[5552] Forked 32289 +[5551] Forked 32290 +(32289) found +(32290) found +[5550] Forked 32291 +[5549] Forked 32292 +(32291) found +(32292) found +[5548] Forked 32293 +[5547] Forked 32294 +(32293) found +(32294) found +[5546] Forked 32295 +(32295) found +[5545] Forked 32296 +(32296) found +[5544] Forked 32297 +(32297) found +[5543] Forked 32298 +(32298) found +[5542] Forked 32299 +(32299) found +[5541] Forked 32300 +(32300) found +[5540] Forked 32301 +(32301) found +[5539] Forked 32302 +(32302) found +[5538] Forked 32303 +(32303) found +[5537] Forked 32304 +(32304) found +[5536] Forked 32305 +(32305) found +[5535] Forked 32306 +(32306) found +[5534] Forked 32307 +(32307) found +[5533] Forked 32308 +(32308) found +[5532] Forked 32309 +(32309) found +[5531] Forked 32310 +(32310) found +[5530] Forked 32311 +(32311) found +[5529] Forked 32312 +(32312) found +[5528] Forked 32313 +(32313) found +[5527] Forked 32314 +(32314) found +[5526] Forked 32315 +(32315) found +[5525] Forked 32316 +(32316) found +[5524] Forked 32317 +(32317) found +[5523] Forked 32318 +(32318) found +[5522] Forked 32319 +(32319) found +[5521] Forked 32320 +(32320) found +[5520] Forked 32321 +(32321) found +[5519] Forked 32322 +(32322) found +[5518] Forked 32323 +(32323) found +[5517] Forked 32324 +(32324) found +[5516] Forked 32325 +(32325) found +[5515] Forked 32326 +(32326) found +[5514] Forked 32327 +(32327) found +[5513] Forked 32328 +(32328) found +[5512] Forked 32329 +(32329) found +[5511] Forked 32330 +[5510] Forked 32331 +(32330) found +(32331) found +[5509] Forked 32332 +[5508] Forked 32333 +(32332) found +(32333) found +[5507] Forked 32334 +[5506] Forked 32335 +(32334) found +(32335) found +[5505] Forked 32336 +[5504] Forked 32337 +(32336) found +(32337) found +[5503] Forked 32338 +[5502] Forked 32339 +(32338) found +(32339) found +[5501] Forked 32340 +[5500] Forked 32341 +(32340) found +(32341) found +[5499] Forked 32342 +[5498] Forked 32343 +(32342) found +(32343) found +[5497] Forked 32344 +[5496] Forked 32345 +(32344) found +(32345) found +[5495] Forked 32346 +[5494] Forked 32347 +(32346) found +(32347) found +[5493] Forked 32348 +[5492] Forked 32349 +(32348) found +(32349) found +[5491] Forked 32350 +[5490] Forked 32351 +(32350) found +(32351) found +[5489] Forked 32352 +[5488] Forked 32353 +(32352) found +(32353) found +[5487] Forked 32354 +[5486] Forked 32355 +(32354) found +(32355) found +[5485] Forked 32356 +[5484] Forked 32357 +(32356) found +(32357) found +[5483] Forked 32358 +[5482] Forked 32359 +(32358) found +(32359) found +[5481] Forked 32360 +[5480] Forked 32361 +(32360) found +(32361) found +[5479] Forked 32362 +[5478] Forked 32363 +(32362) found +(32363) found +[5477] Forked 32364 +[5476] Forked 32365 +(32364) found +(32365) found +[5475] Forked 32366 +[5474] Forked 32367 +(32366) found +(32367) found +[5473] Forked 32368 +[5472] Forked 32369 +(32368) found +(32369) found +[5471] Forked 32370 +[5470] Forked 32371 +(32370) found +(32371) found +[5469] Forked 32372 +[5468] Forked 32373 +(32372) found +(32373) found +[5467] Forked 32374 +[5466] Forked 32375 +(32374) found +(32375) found +[5465] Forked 32376 +[5464] Forked 32377 +(32376) found +(32377) found +[5463] Forked 32378 +[5462] Forked 32379 +(32378) found +(32379) found +[5461] Forked 32380 +[5460] Forked 32381 +(32380) found +(32381) found +[5459] Forked 32382 +[5458] Forked 32383 +(32382) found +(32383) found +[5457] Forked 32384 +[5456] Forked 32385 +(32384) found +(32385) found +[5455] Forked 32386 +[5454] Forked 32387 +(32386) found +(32387) found +[5453] Forked 32388 +[5452] Forked 32389 +(32388) found +(32389) found +[5451] Forked 32390 +[5450] Forked 32391 +(32390) found +(32391) found +[5449] Forked 32392 +[5448] Forked 32393 +(32392) found +(32393) found +[5447] Forked 32394 +[5446] Forked 32395 +(32394) found +(32395) found +[5445] Forked 32396 +[5444] Forked 32397 +(32396) found +(32397) found +[5443] Forked 32398 +[5442] Forked 32399 +(32398) found +(32399) found +[5441] Forked 32400 +[5440] Forked 32401 +(32400) found +(32401) found +[5439] Forked 32402 +[5438] Forked 32403 +(32402) found +(32403) found +[5437] Forked 32404 +[5436] Forked 32405 +(32404) found +(32405) found +[5435] Forked 32406 +[5434] Forked 32407 +(32406) found +(32407) found +[5433] Forked 32408 +[5432] Forked 32409 +(32408) found +(32409) found +[5431] Forked 32410 +[5430] Forked 32411 +(32410) found +(32411) found +[5429] Forked 32412 +[5428] Forked 32413 +(32412) found +(32413) found +[5427] Forked 32414 +[5426] Forked 32415 +(32414) found +(32415) found +[5425] Forked 32416 +[5424] Forked 32417 +(32416) found +(32417) found +[5423] Forked 32418 +(32418) found +[5422] Forked 32419 +[5421] Forked 32420 +(32419) found +(32420) found +[5420] Forked 32421 +[5419] Forked 32422 +(32421) found +(32422) found +[5418] Forked 32423 +[5417] Forked 32424 +(32423) found +(32424) found +[5416] Forked 32425 +[5415] Forked 32426 +(32425) found +(32426) found +[5414] Forked 32427 +[5413] Forked 32428 +(32427) found +(32428) found +[5412] Forked 32429 +[5411] Forked 32430 +(32429) found +(32430) found +[5410] Forked 32431 +[5409] Forked 32432 +(32431) found +(32432) found +[5408] Forked 32433 +[5407] Forked 32434 +(32433) found +(32434) found +[5406] Forked 32435 +[5405] Forked 32436 +(32435) found +(32436) found +[5404] Forked 32437 +[5403] Forked 32438 +(32437) found +(32438) found +[5402] Forked 32439 +[5401] Forked 32440 +(32439) found +(32440) found +[5400] Forked 32441 +[5399] Forked 32442 +(32441) found +(32442) found +[5398] Forked 32443 +[5397] Forked 32444 +(32443) found +(32444) found +[5396] Forked 32445 +[5395] Forked 32446 +(32445) found +(32446) found +[5394] Forked 32447 +[5393] Forked 32448 +(32447) found +(32448) found +[5392] Forked 32449 +[5391] Forked 32450 +(32449) found +(32450) found +[5390] Forked 32451 +[5389] Forked 32452 +(32451) found +(32452) found +[5388] Forked 32453 +[5387] Forked 32454 +(32453) found +(32454) found +[5386] Forked 32455 +[5385] Forked 32456 +(32455) found +(32456) found +[5384] Forked 32457 +[5383] Forked 32458 +(32457) found +(32458) found +[5382] Forked 32459 +[5381] Forked 32460 +(32459) found +(32460) found +[5380] Forked 32461 +[5379] Forked 32462 +(32461) found +(32462) found +[5378] Forked 32463 +[5377] Forked 32464 +(32463) found +(32464) found +[5376] Forked 32465 +[5375] Forked 32466 +(32465) found +(32466) found +[5374] Forked 32467 +[5373] Forked 32468 +(32467) found +(32468) found +[5372] Forked 32469 +[5371] Forked 32470 +(32469) found +(32470) found +[5370] Forked 32471 +[5369] Forked 32472 +(32471) found +(32472) found +[5368] Forked 32473 +[5367] Forked 32474 +(32473) found +(32474) found +[5366] Forked 32475 +[5365] Forked 32476 +(32475) found +(32476) found +[5364] Forked 32477 +[5363] Forked 32478 +(32477) found +(32478) found +[5362] Forked 32479 +[5361] Forked 32480 +(32479) found +(32480) found +[5360] Forked 32481 +[5359] Forked 32482 +(32481) found +(32482) found +[5358] Forked 32483 +[5357] Forked 32484 +(32483) found +(32484) found +[5356] Forked 32485 +[5355] Forked 32486 +(32485) found +(32486) found +[5354] Forked 32487 +[5353] Forked 32488 +(32487) found +(32488) found +[5352] Forked 32489 +[5351] Forked 32490 +(32489) found +(32490) found +[5350] Forked 32491 +[5349] Forked 32492 +(32491) found +(32492) found +[5348] Forked 32493 +[5347] Forked 32494 +(32493) found +(32494) found +[5346] Forked 32495 +[5345] Forked 32496 +(32495) found +(32496) found +[5344] Forked 32497 +[5343] Forked 32498 +(32497) found +(32498) found +[5342] Forked 32499 +[5341] Forked 32500 +(32499) found +(32500) found +[5340] Forked 32501 +[5339] Forked 32502 +(32501) found +(32502) found +[5338] Forked 32503 +[5337] Forked 32504 +(32503) found +(32504) found +[5336] Forked 32505 +[5335] Forked 32506 +(32505) found +(32506) found +[5334] Forked 32507 +[5333] Forked 32508 +(32507) found +(32508) found +[5332] Forked 32509 +[5331] Forked 32510 +(32509) found +(32510) found +[5330] Forked 32511 +[5329] Forked 32512 +(32511) found +(32512) found +[5328] Forked 32513 +[5327] Forked 32514 +(32513) found +(32514) found +[5326] Forked 32515 +[5325] Forked 32516 +(32515) found +(32516) found +[5324] Forked 32517 +[5323] Forked 32518 +(32517) found +(32518) found +[5322] Forked 32519 +[5321] Forked 32520 +(32519) found +(32520) found +[5320] Forked 32521 +[5319] Forked 32522 +(32521) found +(32522) found +[5318] Forked 32523 +[5317] Forked 32524 +(32523) found +(32524) found +[5316] Forked 32525 +[5315] Forked 32526 +(32525) found +(32526) found +[5314] Forked 32527 +[5313] Forked 32528 +(32527) found +(32528) found +[5312] Forked 32529 +[5311] Forked 32530 +(32529) found +(32530) found +[5310] Forked 32531 +[5309] Forked 32532 +(32531) found +(32532) found +[5308] Forked 32533 +[5307] Forked 32534 +(32533) found +(32534) found +[5306] Forked 32535 +[5305] Forked 32536 +(32535) found +(32536) found +[5304] Forked 32537 +[5303] Forked 32538 +(32537) found +(32538) found +[5302] Forked 32539 +[5301] Forked 32540 +(32539) found +(32540) found +[5300] Forked 32541 +[5299] Forked 32542 +(32541) found +(32542) found +[5298] Forked 32543 +(32543) found +[5297] Forked 32544 +(32544) found +[5296] Forked 32545 +(32545) found +[5295] Forked 32546 +(32546) found +[5294] Forked 32547 +(32547) found +[5293] Forked 32548 +(32548) found +[5292] Forked 32549 +(32549) found +[5291] Forked 32550 +[5290] Forked 32551 +(32550) found +(32551) found +[5289] Forked 32552 +[5288] Forked 32553 +(32552) found +(32553) found +[5287] Forked 32554 +[5286] Forked 32555 +(32554) found +(32555) found +[5285] Forked 32556 +[5284] Forked 32557 +(32556) found +(32557) found +[5283] Forked 32558 +[5282] Forked 32559 +(32558) found +(32559) found +[5281] Forked 32560 +[5280] Forked 32561 +(32560) found +(32561) found +[5279] Forked 32562 +[5278] Forked 32563 +(32562) found +(32563) found +[5277] Forked 32564 +[5276] Forked 32565 +(32564) found +(32565) found +[5275] Forked 32566 +[5274] Forked 32567 +(32566) found +(32567) found +[5273] Forked 32568 +[5272] Forked 32569 +(32568) found +(32569) found +[5271] Forked 32570 +[5270] Forked 32571 +(32570) found +(32571) found +[5269] Forked 32572 +[5268] Forked 32573 +(32572) found +(32573) found +[5267] Forked 32574 +[5266] Forked 32575 +(32574) found +(32575) found +[5265] Forked 32576 +[5264] Forked 32577 +(32576) found +(32577) found +[5263] Forked 32578 +[5262] Forked 32579 +(32578) found +(32579) found +[5261] Forked 32580 +[5260] Forked 32581 +(32580) found +(32581) found +[5259] Forked 32582 +[5258] Forked 32583 +(32582) found +(32583) found +[5257] Forked 32584 +[5256] Forked 32585 +(32584) found +(32585) found +[5255] Forked 32586 +[5254] Forked 32587 +(32586) found +(32587) found +[5253] Forked 32588 +[5252] Forked 32589 +(32588) found +(32589) found +[5251] Forked 32590 +[5250] Forked 32591 +(32590) found +(32591) found +[5249] Forked 32592 +[5248] Forked 32593 +(32592) found +(32593) found +[5247] Forked 32594 +(32594) found +[5246] Forked 32595 +(32595) found +[5245] Forked 32596 +(32596) found +[5244] Forked 32597 +(32597) found +[5243] Forked 32598 +(32598) found +[5242] Forked 32599 +(32599) found +[5241] Forked 32600 +(32600) found +[5240] Forked 32601 +(32601) found +[5239] Forked 32602 +(32602) found +[5238] Forked 32603 +(32603) found +[5237] Forked 32604 +(32604) found +[5236] Forked 32605 +(32605) found +[5235] Forked 32606 +(32606) found +[5234] Forked 32607 +(32607) found +[5233] Forked 32608 +(32608) found +[5232] Forked 32609 +(32609) found +[5231] Forked 32610 +(32610) found +[5230] Forked 32611 +(32611) found +[5229] Forked 32612 +(32612) found +[5228] Forked 32613 +(32613) found +[5227] Forked 32614 +(32614) found +[5226] Forked 32615 +(32615) found +[5225] Forked 32616 +(32616) found +[5224] Forked 32617 +(32617) found +[5223] Forked 32618 +(32618) found +[5222] Forked 32619 +(32619) found +[5221] Forked 32620 +(32620) found +[5220] Forked 32621 +(32621) found +[5219] Forked 32622 +(32622) found +[5218] Forked 32623 +(32623) found +[5217] Forked 32624 +(32624) found +[5216] Forked 32625 +(32625) found +[5215] Forked 32626 +(32626) found +[5214] Forked 32627 +(32627) found +[5213] Forked 32628 +(32628) found +[5212] Forked 32629 +(32629) found +[5211] Forked 32630 +(32630) found +[5210] Forked 32631 +(32631) found +[5209] Forked 32632 +(32632) found +[5208] Forked 32633 +(32633) found +[5207] Forked 32634 +[5206] Forked 32635 +(32634) found +(32635) found +[5205] Forked 32636 +[5204] Forked 32637 +(32636) found +(32637) found +[5203] Forked 32638 +[5202] Forked 32639 +(32638) found +(32639) found +[5201] Forked 32640 +[5200] Forked 32641 +(32640) found +(32641) found +[5199] Forked 32642 +[5198] Forked 32643 +(32642) found +(32643) found +[5197] Forked 32644 +[5196] Forked 32645 +(32644) found +(32645) found +[5195] Forked 32646 +[5194] Forked 32647 +(32646) found +(32647) found +[5193] Forked 32648 +[5192] Forked 32649 +(32648) found +(32649) found +[5191] Forked 32650 +[5190] Forked 32651 +(32650) found +(32651) found +[5189] Forked 32652 +[5188] Forked 32653 +(32652) found +(32653) found +[5187] Forked 32654 +[5186] Forked 32655 +(32654) found +(32655) found +[5185] Forked 32656 +[5184] Forked 32657 +(32656) found +(32657) found +[5183] Forked 32658 +[5182] Forked 32659 +(32658) found +(32659) found +[5181] Forked 32660 +(32660) found +[5180] Forked 32661 +[5179] Forked 32662 +(32661) found +(32662) found +[5178] Forked 32663 +[5177] Forked 32664 +(32663) found +(32664) found +[5176] Forked 32665 +[5175] Forked 32666 +(32665) found +(32666) found +[5174] Forked 32667 +[5173] Forked 32668 +(32667) found +(32668) found +[5172] Forked 32669 +[5171] Forked 32670 +(32669) found +(32670) found +[5170] Forked 32671 +[5169] Forked 32672 +(32671) found +(32672) found +[5168] Forked 32673 +(32673) found +[5167] Forked 32674 +(32674) found +[5166] Forked 32675 +(32675) found +[5165] Forked 32676 +(32676) found +[5164] Forked 32677 +(32677) found +[5163] Forked 32678 +(32678) found +[5162] Forked 32679 +(32679) found +[5161] Forked 32680 +(32680) found +[5160] Forked 32681 +(32681) found +[5159] Forked 32682 +(32682) found +[5158] Forked 32683 +(32683) found +[5157] Forked 32684 +(32684) found +[5156] Forked 32685 +(32685) found +[5155] Forked 32686 +(32686) found +[5154] Forked 32687 +(32687) found +[5153] Forked 32688 +(32688) found +[5152] Forked 32689 +(32689) found +[5151] Forked 32690 +(32690) found +[5150] Forked 32691 +(32691) found +[5149] Forked 32692 +(32692) found +[5148] Forked 32693 +(32693) found +[5147] Forked 32694 +(32694) found +[5146] Forked 32695 +(32695) found +[5145] Forked 32696 +(32696) found +[5144] Forked 32697 +(32697) found +[5143] Forked 32698 +(32698) found +[5142] Forked 32699 +(32699) found +[5141] Forked 32700 +(32700) found +[5140] Forked 32701 +(32701) found +[5139] Forked 32702 +(32702) found +[5138] Forked 32703 +(32703) found +[5137] Forked 32704 +(32704) found +[5136] Forked 32705 +(32705) found +[5135] Forked 32706 +(32706) found +[5134] Forked 32707 +(32707) found +[5133] Forked 32708 +(32708) found +[5132] Forked 32709 +(32709) found +[5131] Forked 32710 +(32710) found +[5130] Forked 32711 +(32711) found +[5129] Forked 32712 +[5128] Forked 32713 +(32712) found +(32713) found +[5127] Forked 32714 +[5126] Forked 32715 +(32714) found +(32715) found +[5125] Forked 32716 +[5124] Forked 32717 +(32716) found +(32717) found +[5123] Forked 32718 +[5122] Forked 32719 +(32718) found +(32719) found +[5121] Forked 32720 +[5120] Forked 32721 +(32720) found +(32721) found +[5119] Forked 32722 +[5118] Forked 32723 +(32722) found +(32723) found +[5117] Forked 32724 +[5116] Forked 32725 +(32724) found +(32725) found +[5115] Forked 32726 +[5114] Forked 32727 +(32726) found +(32727) found +[5113] Forked 32728 +[5112] Forked 32729 +(32728) found +(32729) found +[5111] Forked 32730 +[5110] Forked 32731 +(32730) found +(32731) found +[5109] Forked 32732 +[5108] Forked 32733 +(32732) found +(32733) found +[5107] Forked 32734 +[5106] Forked 32735 +(32734) found +(32735) found +[5105] Forked 32736 +[5104] Forked 32737 +(32736) found +(32737) found +[5103] Forked 32738 +[5102] Forked 32739 +(32738) found +(32739) found +[5101] Forked 32740 +[5100] Forked 32741 +(32740) found +(32741) found +[5099] Forked 32742 +[5098] Forked 32743 +(32742) found +(32743) found +[5097] Forked 32744 +[5096] Forked 32745 +(32744) found +(32745) found +[5095] Forked 32746 +[5094] Forked 32747 +(32746) found +(32747) found +[5093] Forked 32748 +[5092] Forked 32749 +(32748) found +(32749) found +[5091] Forked 32750 +[5090] Forked 32751 +(32750) found +(32751) found +[5089] Forked 32752 +[5088] Forked 32753 +(32752) found +(32753) found +[5087] Forked 32754 +[5086] Forked 32755 +(32754) found +(32755) found +[5085] Forked 32756 +[5084] Forked 32757 +(32756) found +(32757) found +[5083] Forked 32758 +[5082] Forked 32759 +(32758) found +(32759) found +[5081] Forked 32760 +[5080] Forked 32761 +(32760) found +(32761) found +[5079] Forked 32762 +[5078] Forked 32763 +(32762) found +(32763) found +[5077] Forked 32764 +[5076] Forked 32765 +(32764) found +(32765) found +[5075] Forked 32766 +[5074] Forked 32767 +(32766) found +(32767) found +[5073] Forked 300 +[5072] Forked 301 +(300) found +(301) found +[5071] Forked 302 +[5070] Forked 303 +(302) found +(303) found +[5069] Forked 304 +[5068] Forked 305 +(304) found +(305) found +[5067] Forked 306 +[5066] Forked 307 +(306) found +(307) found +[5065] Forked 308 +(308) found +[5064] Forked 310 +(310) found +[5063] Forked 311 +(311) found +[5062] Forked 312 +(312) found +[5061] Forked 313 +(313) found +[5060] Forked 314 +(314) found +[5059] Forked 315 +(315) found +[5058] Forked 316 +(316) found +[5057] Forked 317 +(317) found +[5056] Forked 318 +(318) found +[5055] Forked 319 +(319) found +[5054] Forked 320 +(320) found +[5053] Forked 321 +(321) found +[5052] Forked 322 +(322) found +[5051] Forked 323 +(323) found +[5050] Forked 324 +(324) found +[5049] Forked 325 +(325) found +[5048] Forked 328 +(328) found +[5047] Forked 330 +(330) found +[5046] Forked 331 +(331) found +[5045] Forked 332 +(332) found +[5044] Forked 333 +(333) found +[5043] Forked 334 +(334) found +[5042] Forked 335 +(335) found +[5041] Forked 336 +(336) found +[5040] Forked 337 +(337) found +[5039] Forked 338 +(338) found +[5038] Forked 339 +(339) found +[5037] Forked 340 +(340) found +[5036] Forked 341 +(341) found +[5035] Forked 342 +(342) found +[5034] Forked 343 +(343) found +[5033] Forked 344 +(344) found +[5032] Forked 345 +(345) found +[5031] Forked 346 +(346) found +[5030] Forked 347 +(347) found +[5029] Forked 348 +(348) found +[5028] Forked 349 +(349) found +[5027] Forked 350 +(350) found +[5026] Forked 351 +(351) found +[5025] Forked 352 +(352) found +[5024] Forked 353 +(353) found +[5023] Forked 354 +(354) found +[5022] Forked 355 +(355) found +[5021] Forked 356 +(356) found +[5020] Forked 357 +(357) found +[5019] Forked 358 +(358) found +[5018] Forked 359 +(359) found +[5017] Forked 360 +(360) found +[5016] Forked 361 +(361) found +[5015] Forked 362 +(362) found +[5014] Forked 363 +(363) found +[5013] Forked 364 +[5012] Forked 365 +(364) found +(365) found +[5011] Forked 366 +[5010] Forked 367 +(366) found +(367) found +[5009] Forked 368 +[5008] Forked 369 +(368) found +(369) found +[5007] Forked 370 +[5006] Forked 371 +(370) found +(371) found +[5005] Forked 372 +[5004] Forked 373 +(372) found +(373) found +[5003] Forked 374 +[5002] Forked 375 +(374) found +(375) found +[5001] Forked 376 +[5000] Forked 377 +(376) found +(377) found +[4999] Forked 378 +[4998] Forked 379 +(378) found +(379) found +[4997] Forked 380 +[4996] Forked 381 +(380) found +(381) found +[4995] Forked 383 +[4994] Forked 384 +(383) found +(384) found +[4993] Forked 385 +[4992] Forked 386 +(385) found +(386) found +[4991] Forked 387 +[4990] Forked 388 +(387) found +(388) found +[4989] Forked 389 +[4988] Forked 390 +(389) found +(390) found +[4987] Forked 391 +[4986] Forked 392 +(391) found +(392) found +[4985] Forked 393 +[4984] Forked 394 +(393) found +(394) found +[4983] Forked 395 +[4982] Forked 396 +(395) found +(396) found +[4981] Forked 397 +[4980] Forked 398 +(397) found +(398) found +[4979] Forked 399 +[4978] Forked 401 +(399) found +(401) found +[4977] Forked 402 +[4976] Forked 403 +(402) found +(403) found +[4975] Forked 404 +[4974] Forked 405 +(404) found +(405) found +[4973] Forked 407 +[4972] Forked 408 +(407) found +(408) found +[4971] Forked 409 +[4970] Forked 410 +(409) found +(410) found +[4969] Forked 411 +[4968] Forked 412 +(411) found +(412) found +[4967] Forked 413 +[4966] Forked 414 +(413) found +(414) found +[4965] Forked 415 +[4964] Forked 416 +(415) found +(416) found +[4963] Forked 417 +[4962] Forked 418 +(417) found +(418) found +[4961] Forked 419 +[4960] Forked 420 +(419) found +(420) found +[4959] Forked 421 +[4958] Forked 422 +(421) found +(422) found +[4957] Forked 423 +[4956] Forked 424 +(423) found +(424) found +[4955] Forked 425 +[4954] Forked 426 +(425) found +(426) found +[4953] Forked 427 +[4952] Forked 429 +(427) found +(429) found +[4951] Forked 430 +[4950] Forked 431 +(430) found +(431) found +[4949] Forked 432 +[4948] Forked 433 +(432) found +(433) found +[4947] Forked 434 +[4946] Forked 435 +(434) found +(435) found +[4945] Forked 436 +[4944] Forked 437 +(436) found +(437) found +[4943] Forked 438 +[4942] Forked 439 +(439) found +(438) found +[4941] Forked 440 +(440) found +[4940] Forked 441 +(441) found +[4939] Forked 442 +(442) found +[4938] Forked 443 +(443) found +[4937] Forked 444 +(444) found +[4936] Forked 445 +(445) found +[4935] Forked 446 +(446) found +[4934] Forked 447 +(447) found +[4933] Forked 448 +(448) found +[4932] Forked 449 +(449) found +[4931] Forked 450 +(450) found +[4930] Forked 451 +(451) found +[4929] Forked 452 +(452) found +[4928] Forked 453 +(453) found +[4927] Forked 454 +(454) found +[4926] Forked 455 +(455) found +[4925] Forked 456 +(456) found +[4924] Forked 457 +(457) found +[4923] Forked 458 +(458) found +[4922] Forked 459 +(459) found +[4921] Forked 460 +(460) found +[4920] Forked 461 +(461) found +[4919] Forked 462 +(462) found +[4918] Forked 463 +(463) found +[4917] Forked 464 +(464) found +[4916] Forked 465 +(465) found +[4915] Forked 466 +(466) found +[4914] Forked 467 +(467) found +[4913] Forked 468 +(468) found +[4912] Forked 469 +(469) found +[4911] Forked 470 +(470) found +[4910] Forked 471 +(471) found +[4909] Forked 472 +(472) found +[4908] Forked 473 +(473) found +[4907] Forked 474 +(474) found +[4906] Forked 475 +(475) found +[4905] Forked 476 +(476) found +[4904] Forked 477 +(477) found +[4903] Forked 478 +(478) found +[4902] Forked 479 +(479) found +[4901] Forked 480 +(480) found +[4900] Forked 481 +(481) found +[4899] Forked 482 +(482) found +[4898] Forked 483 +(483) found +[4897] Forked 484 +(484) found +[4896] Forked 485 +(485) found +[4895] Forked 486 +(486) found +[4894] Forked 487 +(487) found +[4893] Forked 488 +(488) found +[4892] Forked 489 +(489) found +[4891] Forked 490 +(490) found +[4890] Forked 491 +(491) found +[4889] Forked 492 +(492) found +[4888] Forked 493 +(493) found +[4887] Forked 494 +(494) found +[4886] Forked 495 +(495) found +[4885] Forked 496 +(496) found +[4884] Forked 497 +(497) found +[4883] Forked 498 +(498) found +[4882] Forked 499 +(499) found +[4881] Forked 500 +(500) found +[4880] Forked 501 +(501) found +[4879] Forked 502 +(502) found +[4878] Forked 503 +(503) found +[4877] Forked 504 +(504) found +[4876] Forked 505 +(505) found +[4875] Forked 506 +(506) found +[4874] Forked 507 +(507) found +[4873] Forked 508 +(508) found +[4872] Forked 509 +(509) found +[4871] Forked 510 +(510) found +[4870] Forked 511 +(511) found +[4869] Forked 512 +(512) found +[4868] Forked 513 +(513) found +[4867] Forked 514 +(514) found +[4866] Forked 515 +(515) found +[4865] Forked 516 +(516) found +[4864] Forked 517 +(517) found +[4863] Forked 518 +(518) found +[4862] Forked 519 +[4861] Forked 520 +(519) found +(520) found +[4860] Forked 521 +[4859] Forked 522 +(521) found +(522) found +[4858] Forked 523 +[4857] Forked 524 +(523) found +(524) found +[4856] Forked 525 +[4855] Forked 526 +(525) found +(526) found +[4854] Forked 527 +[4853] Forked 528 +(527) found +(528) found +[4852] Forked 529 +[4851] Forked 530 +(529) found +(530) found +[4850] Forked 531 +[4849] Forked 532 +(531) found +(532) found +[4848] Forked 533 +[4847] Forked 534 +(533) found +(534) found +[4846] Forked 535 +[4845] Forked 536 +(535) found +(536) found +[4844] Forked 537 +[4843] Forked 538 +(537) found +(538) found +[4842] Forked 539 +[4841] Forked 540 +(539) found +(540) found +[4840] Forked 541 +[4839] Forked 542 +(541) found +(542) found +[4838] Forked 543 +[4837] Forked 544 +(543) found +(544) found +[4836] Forked 545 +[4835] Forked 546 +(545) found +(546) found +[4834] Forked 547 +[4833] Forked 548 +(547) found +(548) found +[4832] Forked 549 +[4831] Forked 550 +(549) found +(550) found +[4830] Forked 551 +[4829] Forked 552 +(551) found +(552) found +[4828] Forked 553 +[4827] Forked 554 +(553) found +(554) found +[4826] Forked 555 +[4825] Forked 556 +(555) found +(556) found +[4824] Forked 557 +[4823] Forked 558 +(557) found +(558) found +[4822] Forked 559 +[4821] Forked 560 +(559) found +(560) found +[4820] Forked 561 +[4819] Forked 562 +(561) found +(562) found +[4818] Forked 563 +[4817] Forked 564 +(563) found +(564) found +[4816] Forked 565 +(565) found +[4815] Forked 566 +(566) found +[4814] Forked 567 +(567) found +[4813] Forked 568 +(568) found +[4812] Forked 569 +(569) found +[4811] Forked 570 +(570) found +[4810] Forked 571 +(571) found +[4809] Forked 572 +(572) found +[4808] Forked 573 +(573) found +[4807] Forked 574 +(574) found +[4806] Forked 575 +(575) found +[4805] Forked 576 +(576) found +[4804] Forked 577 +(577) found +[4803] Forked 578 +(578) found +[4802] Forked 579 +(579) found +[4801] Forked 580 +(580) found +[4800] Forked 581 +(581) found +[4799] Forked 582 +(582) found +[4798] Forked 583 +(583) found +[4797] Forked 584 +(584) found +[4796] Forked 585 +(585) found +[4795] Forked 586 +(586) found +[4794] Forked 587 +(587) found +[4793] Forked 588 +(588) found +[4792] Forked 589 +(589) found +[4791] Forked 590 +(590) found +[4790] Forked 591 +(591) found +[4789] Forked 592 +(592) found +[4788] Forked 593 +(593) found +[4787] Forked 594 +(594) found +[4786] Forked 595 +(595) found +[4785] Forked 596 +(596) found +[4784] Forked 597 +(597) found +[4783] Forked 598 +(598) found +[4782] Forked 599 +(599) found +[4781] Forked 600 +[4780] Forked 601 +(600) found +(601) found +[4779] Forked 602 +[4778] Forked 603 +(602) found +(603) found +[4777] Forked 604 +[4776] Forked 606 +(604) found +(606) found +[4775] Forked 607 +[4774] Forked 609 +(607) found +(609) found +[4773] Forked 610 +[4772] Forked 612 +(610) found +(612) found +[4771] Forked 613 +[4770] Forked 615 +(613) found +(615) found +[4769] Forked 616 +[4768] Forked 617 +(616) found +(617) found +[4767] Forked 618 +[4766] Forked 619 +(618) found +(619) found +[4765] Forked 620 +[4764] Forked 621 +(620) found +(621) found +[4763] Forked 622 +[4762] Forked 623 +(622) found +(623) found +[4761] Forked 624 +[4760] Forked 625 +(624) found +(625) found +[4759] Forked 626 +[4758] Forked 627 +(626) found +(627) found +[4757] Forked 628 +[4756] Forked 629 +(628) found +(629) found +[4755] Forked 630 +[4754] Forked 631 +(630) found +(631) found +[4753] Forked 632 +[4752] Forked 633 +(632) found +(633) found +[4751] Forked 634 +[4750] Forked 635 +(634) found +(635) found +[4749] Forked 636 +[4748] Forked 637 +(636) found +(637) found +[4747] Forked 638 +[4746] Forked 639 +(638) found +(639) found +[4745] Forked 640 +[4744] Forked 641 +(640) found +(641) found +[4743] Forked 642 +[4742] Forked 643 +(642) found +(643) found +[4741] Forked 644 +[4740] Forked 646 +(644) found +(646) found +[4739] Forked 647 +(647) found +[4738] Forked 648 +(648) found +[4737] Forked 649 +(649) found +[4736] Forked 650 +(650) found +[4735] Forked 651 +(651) found +[4734] Forked 652 +(652) found +[4733] Forked 653 +(653) found +[4732] Forked 654 +(654) found +[4731] Forked 655 +(655) found +[4730] Forked 656 +(656) found +[4729] Forked 657 +(657) found +[4728] Forked 658 +(658) found +[4727] Forked 659 +(659) found +[4726] Forked 660 +(660) found +[4725] Forked 661 +(661) found +[4724] Forked 662 +(662) found +[4723] Forked 663 +(663) found +[4722] Forked 664 +(664) found +[4721] Forked 665 +(665) found +[4720] Forked 666 +(666) found +[4719] Forked 667 +(667) found +[4718] Forked 668 +(668) found +[4717] Forked 669 +(669) found +[4716] Forked 670 +(670) found +[4715] Forked 671 +(671) found +[4714] Forked 672 +(672) found +[4713] Forked 673 +(673) found +[4712] Forked 674 +(674) found +[4711] Forked 675 +(675) found +[4710] Forked 677 +(677) found +[4709] Forked 678 +(678) found +[4708] Forked 679 +(679) found +[4707] Forked 680 +(680) found +[4706] Forked 681 +(681) found +[4705] Forked 682 +(682) found +[4704] Forked 683 +(683) found +[4703] Forked 684 +(684) found +[4702] Forked 685 +(685) found +[4701] Forked 686 +[4700] Forked 687 +(686) found +(687) found +[4699] Forked 688 +[4698] Forked 689 +(688) found +(689) found +[4697] Forked 690 +[4696] Forked 691 +(691) found +(690) found +[4695] Forked 692 +(692) found +[4694] Forked 693 +(693) found +[4693] Forked 694 +(694) found +[4692] Forked 695 +(695) found +[4691] Forked 696 +(696) found +[4690] Forked 697 +(697) found +[4689] Forked 698 +(698) found +[4688] Forked 699 +(699) found +[4687] Forked 700 +(700) found +[4686] Forked 701 +(701) found +[4685] Forked 702 +(702) found +[4684] Forked 703 +(703) found +[4683] Forked 704 +(704) found +[4682] Forked 705 +(705) found +[4681] Forked 706 +(706) found +[4680] Forked 707 +(707) found +[4679] Forked 708 +(708) found +[4678] Forked 709 +(709) found +[4677] Forked 710 +(710) found +[4676] Forked 711 +(711) found +[4675] Forked 712 +(712) found +[4674] Forked 713 +(713) found +[4673] Forked 714 +(714) found +[4672] Forked 715 +(715) found +[4671] Forked 716 +(716) found +[4670] Forked 717 +(717) found +[4669] Forked 718 +(718) found +[4668] Forked 719 +(719) found +[4667] Forked 720 +(720) found +[4666] Forked 721 +(721) found +[4665] Forked 722 +(722) found +[4664] Forked 723 +(723) found +[4663] Forked 724 +(724) found +[4662] Forked 725 +(725) found +[4661] Forked 726 +(726) found +[4660] Forked 727 +(727) found +[4659] Forked 728 +(728) found +[4658] Forked 729 +(729) found +[4657] Forked 730 +(730) found +[4656] Forked 731 +(731) found +[4655] Forked 732 +(732) found +[4654] Forked 734 +(734) found +[4653] Forked 735 +(735) found +[4652] Forked 737 +(737) found +[4651] Forked 740 +(740) found +[4650] Forked 742 +(742) found +[4649] Forked 744 +(744) found +[4648] Forked 745 +(745) found +[4647] Forked 746 +(746) found +[4646] Forked 747 +(747) found +[4645] Forked 748 +(748) found +[4644] Forked 749 +(749) found +[4643] Forked 750 +(750) found +[4642] Forked 751 +(751) found +[4641] Forked 752 +(752) found +[4640] Forked 753 +(753) found +[4639] Forked 754 +(754) found +[4638] Forked 755 +(755) found +[4637] Forked 756 +(756) found +[4636] Forked 757 +(757) found +[4635] Forked 758 +(758) found +[4634] Forked 759 +(759) found +[4633] Forked 760 +(760) found +[4632] Forked 761 +(761) found +[4631] Forked 762 +(762) found +[4630] Forked 763 +(763) found +[4629] Forked 764 +(764) found +[4628] Forked 765 +(765) found +[4627] Forked 766 +(766) found +[4626] Forked 767 +(767) found +[4625] Forked 768 +(768) found +[4624] Forked 769 +(769) found +[4623] Forked 770 +(770) found +[4622] Forked 771 +(771) found +[4621] Forked 772 +(772) found +[4620] Forked 773 +(773) found +[4619] Forked 774 +(774) found +[4618] Forked 775 +(775) found +[4617] Forked 776 +(776) found +[4616] Forked 777 +(777) found +[4615] Forked 778 +(778) found +[4614] Forked 780 +(780) found +[4613] Forked 781 +(781) found +[4612] Forked 782 +(782) found +[4611] Forked 783 +(783) found +[4610] Forked 784 +(784) found +[4609] Forked 785 +(785) found +[4608] Forked 786 +(786) found +[4607] Forked 787 +(787) found +[4606] Forked 788 +(788) found +[4605] Forked 789 +(789) found +[4604] Forked 790 +(790) found +[4603] Forked 791 +(791) found +[4602] Forked 792 +(792) found +[4601] Forked 793 +(793) found +[4600] Forked 794 +[4599] Forked 795 +(794) found +(795) found +[4598] Forked 796 +[4597] Forked 797 +(796) found +(797) found +[4596] Forked 798 +[4595] Forked 799 +(798) found +(799) found +[4594] Forked 800 +[4593] Forked 801 +(800) found +(801) found +[4592] Forked 802 +[4591] Forked 803 +(802) found +(803) found +[4590] Forked 804 +[4589] Forked 805 +(804) found +(805) found +[4588] Forked 806 +[4587] Forked 807 +(806) found +(807) found +[4586] Forked 808 +[4585] Forked 809 +(808) found +(809) found +[4584] Forked 810 +[4583] Forked 811 +(810) found +(811) found +[4582] Forked 812 +[4581] Forked 813 +(812) found +(813) found +[4580] Forked 814 +[4579] Forked 815 +(814) found +(815) found +[4578] Forked 816 +[4577] Forked 817 +(816) found +(817) found +[4576] Forked 818 +[4575] Forked 819 +(818) found +(819) found +[4574] Forked 820 +[4573] Forked 821 +(820) found +(821) found +[4572] Forked 822 +[4571] Forked 823 +(822) found +(823) found +[4570] Forked 824 +[4569] Forked 825 +(824) found +(825) found +[4568] Forked 826 +[4567] Forked 827 +(826) found +(827) found +[4566] Forked 828 +[4565] Forked 829 +(828) found +(829) found +[4564] Forked 830 +[4563] Forked 831 +(830) found +(831) found +[4562] Forked 832 +(832) found +[4561] Forked 833 +[4560] Forked 834 +(833) found +(834) found +[4559] Forked 835 +[4558] Forked 836 +(835) found +(836) found +[4557] Forked 837 +[4556] Forked 838 +(837) found +(838) found +[4555] Forked 839 +[4554] Forked 840 +(839) found +(840) found +[4553] Forked 841 +[4552] Forked 842 +(841) found +(842) found +[4551] Forked 843 +[4550] Forked 844 +(843) found +(844) found +[4549] Forked 845 +[4548] Forked 847 +(845) found +(847) found +[4547] Forked 848 +[4546] Forked 849 +(848) found +(849) found +[4545] Forked 850 +[4544] Forked 851 +(850) found +(851) found +[4543] Forked 852 +[4542] Forked 853 +(852) found +(853) found +[4541] Forked 854 +[4540] Forked 855 +(854) found +(855) found +[4539] Forked 856 +[4538] Forked 857 +(856) found +(857) found +[4537] Forked 858 +(858) found +[4536] Forked 859 +[4535] Forked 860 +(859) found +(860) found +[4534] Forked 861 +[4533] Forked 862 +(861) found +(862) found +[4532] Forked 863 +[4531] Forked 864 +(863) found +(864) found +[4530] Forked 865 +[4529] Forked 866 +(865) found +(866) found +[4528] Forked 867 +[4527] Forked 868 +(867) found +(868) found +[4526] Forked 869 +[4525] Forked 870 +(869) found +(870) found +[4524] Forked 871 +[4523] Forked 872 +(871) found +(872) found +[4522] Forked 873 +[4521] Forked 874 +(873) found +(874) found +[4520] Forked 875 +[4519] Forked 876 +(875) found +(876) found +[4518] Forked 877 +[4517] Forked 879 +(877) found +(879) found +[4516] Forked 880 +(880) found +[4515] Forked 881 +(881) found +[4514] Forked 882 +(882) found +[4513] Forked 883 +(883) found +[4512] Forked 884 +(884) found +[4511] Forked 885 +(885) found +[4510] Forked 886 +(886) found +[4509] Forked 887 +(887) found +[4508] Forked 888 +(888) found +[4507] Forked 889 +(889) found +[4506] Forked 890 +(890) found +[4505] Forked 891 +(891) found +[4504] Forked 892 +(892) found +[4503] Forked 893 +(893) found +[4502] Forked 894 +(894) found +[4501] Forked 895 +(895) found +[4500] Forked 896 +(896) found +[4499] Forked 897 +(897) found +[4498] Forked 898 +(898) found +[4497] Forked 899 +(899) found +[4496] Forked 900 +(900) found +[4495] Forked 901 +(901) found +[4494] Forked 902 +(902) found +[4493] Forked 903 +(903) found +[4492] Forked 904 +(904) found +[4491] Forked 905 +(905) found +[4490] Forked 906 +(906) found +[4489] Forked 907 +(907) found +[4488] Forked 908 +(908) found +[4487] Forked 909 +(909) found +[4486] Forked 910 +(910) found +[4485] Forked 911 +(911) found +[4484] Forked 912 +(912) found +[4483] Forked 913 +(913) found +[4482] Forked 914 +(914) found +[4481] Forked 915 +(915) found +[4480] Forked 916 +(916) found +[4479] Forked 917 +(917) found +[4478] Forked 918 +[4477] Forked 919 +(918) found +(919) found +[4476] Forked 920 +[4475] Forked 921 +(920) found +(921) found +[4474] Forked 922 +[4473] Forked 923 +(922) found +(923) found +[4472] Forked 924 +[4471] Forked 925 +(924) found +(925) found +[4470] Forked 926 +[4469] Forked 927 +(926) found +(927) found +[4468] Forked 941 +[4467] Forked 942 +(941) found +(942) found +[4466] Forked 943 +[4465] Forked 944 +(943) found +(944) found +[4464] Forked 945 +[4463] Forked 946 +(945) found +(946) found +[4462] Forked 947 +[4461] Forked 950 +(947) found +(950) found +[4460] Forked 951 +[4459] Forked 952 +(951) found +(952) found +[4458] Forked 953 +[4457] Forked 954 +(953) found +(954) found +[4456] Forked 955 +[4455] Forked 956 +(955) found +(956) found +[4454] Forked 957 +[4453] Forked 958 +(957) found +(958) found +[4452] Forked 959 +[4451] Forked 960 +(959) found +(960) found +[4450] Forked 961 +[4449] Forked 962 +(961) found +(962) found +[4448] Forked 963 +[4447] Forked 964 +(963) found +(964) found +[4446] Forked 965 +[4445] Forked 966 +(965) found +(966) found +[4444] Forked 967 +[4443] Forked 968 +(967) found +(968) found +[4442] Forked 969 +[4441] Forked 970 +(969) found +(970) found +[4440] Forked 971 +[4439] Forked 972 +(971) found +(972) found +[4438] Forked 973 +[4437] Forked 974 +(973) found +(974) found +[4436] Forked 975 +[4435] Forked 976 +(975) found +(976) found +[4434] Forked 977 +[4433] Forked 978 +(977) found +(978) found +[4432] Forked 979 +(979) found +[4431] Forked 980 +(980) found +[4430] Forked 981 +(981) found +[4429] Forked 982 +(982) found +[4428] Forked 983 +(983) found +[4427] Forked 984 +(984) found +[4426] Forked 985 +(985) found +[4425] Forked 986 +(986) found +[4424] Forked 987 +(987) found +[4423] Forked 988 +(988) found +[4422] Forked 989 +(989) found +[4421] Forked 990 +(990) found +[4420] Forked 991 +(991) found +[4419] Forked 992 +(992) found +[4418] Forked 993 +(993) found +[4417] Forked 994 +(994) found +[4416] Forked 995 +(995) found +[4415] Forked 996 +(996) found +[4414] Forked 997 +(997) found +[4413] Forked 998 +(998) found +[4412] Forked 999 +(999) found +[4411] Forked 1000 +(1000) found +[4410] Forked 1001 +(1001) found +[4409] Forked 1002 +(1002) found +[4408] Forked 1003 +(1003) found +[4407] Forked 1004 +(1004) found +[4406] Forked 1005 +(1005) found +[4405] Forked 1006 +(1006) found +[4404] Forked 1007 +(1007) found +[4403] Forked 1008 +(1008) found +[4402] Forked 1009 +(1009) found +[4401] Forked 1010 +(1010) found +[4400] Forked 1011 +(1011) found +[4399] Forked 1012 +(1012) found +[4398] Forked 1013 +(1013) found +[4397] Forked 1014 +(1014) found +[4396] Forked 1015 +(1015) found +[4395] Forked 1016 +[4394] Forked 1017 +(1016) found +(1017) found +[4393] Forked 1018 +[4392] Forked 1019 +(1018) found +(1019) found +[4391] Forked 1020 +[4390] Forked 1021 +(1020) found +(1021) found +[4389] Forked 1022 +[4388] Forked 1023 +(1022) found +(1023) found +[4387] Forked 1024 +[4386] Forked 1025 +(1024) found +(1025) found +[4385] Forked 1026 +[4384] Forked 1027 +(1026) found +(1027) found +[4383] Forked 1028 +[4382] Forked 1029 +(1028) found +(1029) found +[4381] Forked 1030 +[4380] Forked 1031 +(1030) found +(1031) found +[4379] Forked 1032 +[4378] Forked 1033 +(1032) found +(1033) found +[4377] Forked 1034 +[4376] Forked 1035 +(1034) found +(1035) found +[4375] Forked 1036 +[4374] Forked 1037 +(1036) found +(1037) found +[4373] Forked 1038 +[4372] Forked 1039 +(1038) found +(1039) found +[4371] Forked 1040 +[4370] Forked 1041 +(1040) found +(1041) found +[4369] Forked 1042 +[4368] Forked 1043 +(1042) found +(1043) found +[4367] Forked 1044 +[4366] Forked 1045 +(1044) found +(1045) found +[4365] Forked 1046 +[4364] Forked 1047 +(1046) found +(1047) found +[4363] Forked 1048 +[4362] Forked 1049 +(1048) found +(1049) found +[4361] Forked 1050 +[4360] Forked 1051 +(1050) found +(1051) found +[4359] Forked 1052 +[4358] Forked 1053 +(1052) found +(1053) found +[4357] Forked 1054 +[4356] Forked 1055 +(1054) found +(1055) found +[4355] Forked 1056 +[4354] Forked 1057 +(1056) found +(1057) found +[4353] Forked 1058 +[4352] Forked 1059 +(1058) found +(1059) found +[4351] Forked 1060 +[4350] Forked 1061 +(1060) found +(1061) found +[4349] Forked 1062 +(1062) found +[4348] Forked 1063 +(1063) found +[4347] Forked 1064 +(1064) found +[4346] Forked 1065 +(1065) found +[4345] Forked 1066 +(1066) found +[4344] Forked 1067 +(1067) found +[4343] Forked 1068 +(1068) found +[4342] Forked 1069 +(1069) found +[4341] Forked 1070 +(1070) found +[4340] Forked 1071 +(1071) found +[4339] Forked 1072 +(1072) found +[4338] Forked 1073 +(1073) found +[4337] Forked 1074 +(1074) found +[4336] Forked 1075 +(1075) found +[4335] Forked 1076 +(1076) found +[4334] Forked 1077 +(1077) found +[4333] Forked 1078 +(1078) found +[4332] Forked 1079 +(1079) found +[4331] Forked 1080 +(1080) found +[4330] Forked 1081 +(1081) found +[4329] Forked 1082 +(1082) found +[4328] Forked 1083 +(1083) found +[4327] Forked 1084 +(1084) found +[4326] Forked 1085 +(1085) found +[4325] Forked 1086 +(1086) found +[4324] Forked 1087 +(1087) found +[4323] Forked 1088 +(1088) found +[4322] Forked 1089 +(1089) found +[4321] Forked 1090 +(1090) found +[4320] Forked 1091 +(1091) found +[4319] Forked 1092 +(1092) found +[4318] Forked 1093 +(1093) found +[4317] Forked 1094 +(1094) found +[4316] Forked 1095 +(1095) found +[4315] Forked 1096 +(1096) found +[4314] Forked 1097 +(1097) found +[4313] Forked 1098 +[4312] Forked 1099 +(1098) found +(1099) found +[4311] Forked 1100 +[4310] Forked 1101 +(1100) found +(1101) found +[4309] Forked 1102 +[4308] Forked 1103 +(1102) found +(1103) found +[4307] Forked 1104 +[4306] Forked 1106 +(1104) found +(1106) found +[4305] Forked 1108 +[4304] Forked 1109 +(1108) found +(1109) found +[4303] Forked 1111 +[4302] Forked 1113 +(1111) found +(1113) found +[4301] Forked 1114 +[4300] Forked 1115 +(1114) found +(1115) found +[4299] Forked 1116 +[4298] Forked 1117 +(1116) found +(1117) found +[4297] Forked 1118 +[4296] Forked 1119 +(1118) found +(1119) found +[4295] Forked 1120 +[4294] Forked 1121 +(1120) found +(1121) found +[4293] Forked 1122 +[4292] Forked 1123 +(1122) found +(1123) found +[4291] Forked 1124 +[4290] Forked 1125 +(1124) found +(1125) found +[4289] Forked 1126 +[4288] Forked 1127 +(1126) found +(1127) found +[4287] Forked 1128 +[4286] Forked 1129 +(1128) found +(1129) found +[4285] Forked 1130 +[4284] Forked 1131 +(1130) found +(1131) found +[4283] Forked 1132 +[4282] Forked 1133 +(1132) found +(1133) found +[4281] Forked 1134 +[4280] Forked 1135 +(1134) found +(1135) found +[4279] Forked 1136 +[4278] Forked 1137 +(1136) found +(1137) found +[4277] Forked 1138 +[4276] Forked 1139 +(1138) found +(1139) found +[4275] Forked 1140 +[4274] Forked 1141 +(1141) found +(1140) found +[4273] Forked 1142 +(1142) found +[4272] Forked 1143 +(1143) found +[4271] Forked 1144 +(1144) found +[4270] Forked 1145 +(1145) found +[4269] Forked 1146 +(1146) found +[4268] Forked 1147 +(1147) found +[4267] Forked 1148 +(1148) found +[4266] Forked 1149 +(1149) found +[4265] Forked 1150 +(1150) found +[4264] Forked 1151 +(1151) found +[4263] Forked 1152 +(1152) found +[4262] Forked 1153 +(1153) found +[4261] Forked 1154 +(1154) found +[4260] Forked 1155 +(1155) found +[4259] Forked 1156 +(1156) found +[4258] Forked 1157 +(1157) found +[4257] Forked 1158 +(1158) found +[4256] Forked 1159 +(1159) found +[4255] Forked 1160 +(1160) found +[4254] Forked 1161 +(1161) found +[4253] Forked 1162 +(1162) found +[4252] Forked 1163 +(1163) found +[4251] Forked 1164 +(1164) found +[4250] Forked 1165 +(1165) found +[4249] Forked 1166 +(1166) found +[4248] Forked 1167 +(1167) found +[4247] Forked 1168 +(1168) found +[4246] Forked 1169 +(1169) found +[4245] Forked 1170 +(1170) found +[4244] Forked 1171 +(1171) found +[4243] Forked 1172 +(1172) found +[4242] Forked 1173 +(1173) found +[4241] Forked 1174 +(1174) found +[4240] Forked 1175 +(1175) found +[4239] Forked 1176 +(1176) found +[4238] Forked 1177 +(1177) found +[4237] Forked 1178 +(1178) found +[4236] Forked 1179 +(1179) found +[4235] Forked 1180 +[4234] Forked 1181 +(1180) found +(1181) found +[4233] Forked 1182 +[4232] Forked 1183 +(1182) found +(1183) found +[4231] Forked 1184 +[4230] Forked 1185 +(1184) found +(1185) found +[4229] Forked 1186 +[4228] Forked 1188 +(1186) found +(1188) found +[4227] Forked 1190 +(1190) found +[4226] Forked 1191 +(1191) found +[4225] Forked 1192 +(1192) found +[4224] Forked 1193 +(1193) found +[4223] Forked 1194 +(1194) found +[4222] Forked 1195 +(1195) found +[4221] Forked 1196 +(1196) found +[4220] Forked 1197 +(1197) found +[4219] Forked 1198 +(1198) found +[4218] Forked 1199 +(1199) found +[4217] Forked 1200 +(1200) found +[4216] Forked 1201 +(1201) found +[4215] Forked 1202 +(1202) found +[4214] Forked 1203 +(1203) found +[4213] Forked 1204 +(1204) found +[4212] Forked 1205 +(1205) found +[4211] Forked 1206 +(1206) found +[4210] Forked 1207 +(1207) found +[4209] Forked 1208 +(1208) found +[4208] Forked 1209 +(1209) found +[4207] Forked 1210 +(1210) found +[4206] Forked 1211 +(1211) found +[4205] Forked 1212 +(1212) found +[4204] Forked 1213 +(1213) found +[4203] Forked 1214 +(1214) found +[4202] Forked 1215 +(1215) found +[4201] Forked 1216 +(1216) found +[4200] Forked 1217 +(1217) found +[4199] Forked 1218 +(1218) found +[4198] Forked 1219 +(1219) found +[4197] Forked 1220 +(1220) found +[4196] Forked 1221 +(1221) found +[4195] Forked 1222 +(1222) found +[4194] Forked 1223 +(1223) found +[4193] Forked 1224 +(1224) found +[4192] Forked 1225 +(1225) found +[4191] Forked 1226 +(1226) found +[4190] Forked 1227 +(1227) found +[4189] Forked 1228 +(1228) found +[4188] Forked 1229 +(1229) found +[4187] Forked 1230 +(1230) found +[4186] Forked 1231 +(1231) found +[4185] Forked 1232 +(1232) found +[4184] Forked 1233 +(1233) found +[4183] Forked 1234 +(1234) found +[4182] Forked 1235 +(1235) found +[4181] Forked 1236 +(1236) found +[4180] Forked 1237 +(1237) found +[4179] Forked 1238 +(1238) found +[4178] Forked 1239 +(1239) found +[4177] Forked 1240 +(1240) found +[4176] Forked 1241 +(1241) found +[4175] Forked 1242 +(1242) found +[4174] Forked 1243 +(1243) found +[4173] Forked 1244 +(1244) found +[4172] Forked 1245 +(1245) found +[4171] Forked 1246 +(1246) found +[4170] Forked 1247 +(1247) found +[4169] Forked 1248 +(1248) found +[4168] Forked 1249 +(1249) found +[4167] Forked 1250 +(1250) found +[4166] Forked 1251 +(1251) found +[4165] Forked 1252 +[4164] Forked 1253 +(1252) found +(1253) found +[4163] Forked 1254 +[4162] Forked 1255 +(1254) found +(1255) found +[4161] Forked 1256 +[4160] Forked 1257 +(1256) found +(1257) found +[4159] Forked 1258 +[4158] Forked 1259 +(1258) found +(1259) found +[4157] Forked 1260 +[4156] Forked 1261 +(1260) found +(1261) found +[4155] Forked 1262 +[4154] Forked 1263 +(1262) found +(1263) found +[4153] Forked 1264 +[4152] Forked 1265 +(1264) found +(1265) found +[4151] Forked 1266 +[4150] Forked 1267 +(1266) found +(1267) found +[4149] Forked 1268 +[4148] Forked 1269 +(1268) found +(1269) found +[4147] Forked 1270 +[4146] Forked 1271 +(1270) found +(1271) found +[4145] Forked 1272 +[4144] Forked 1273 +(1272) found +(1273) found +[4143] Forked 1274 +[4142] Forked 1275 +(1274) found +(1275) found +[4141] Forked 1276 +[4140] Forked 1277 +(1276) found +(1277) found +[4139] Forked 1278 +[4138] Forked 1279 +(1278) found +(1279) found +[4137] Forked 1280 +[4136] Forked 1281 +(1280) found +(1281) found +[4135] Forked 1282 +[4134] Forked 1283 +(1282) found +(1283) found +[4133] Forked 1284 +[4132] Forked 1285 +(1284) found +(1285) found +[4131] Forked 1286 +[4130] Forked 1287 +(1286) found +(1287) found +[4129] Forked 1288 +[4128] Forked 1289 +(1288) found +(1289) found +[4127] Forked 1290 +[4126] Forked 1291 +(1290) found +(1291) found +[4125] Forked 1292 +[4124] Forked 1293 +(1292) found +(1293) found +[4123] Forked 1294 +[4122] Forked 1295 +(1294) found +(1295) found +[4121] Forked 1296 +[4120] Forked 1297 +(1296) found +(1297) found +[4119] Forked 1298 +[4118] Forked 1299 +(1298) found +(1299) found +[4117] Forked 1300 +[4116] Forked 1301 +(1300) found +(1301) found +[4115] Forked 1302 +[4114] Forked 1303 +(1302) found +(1303) found +[4113] Forked 1304 +[4112] Forked 1305 +(1304) found +(1305) found +[4111] Forked 1306 +[4110] Forked 1307 +(1306) found +(1307) found +[4109] Forked 1308 +[4108] Forked 1309 +(1308) found +(1309) found +[4107] Forked 1310 +[4106] Forked 1312 +(1310) found +(1312) found +[4105] Forked 1313 +[4104] Forked 1314 +(1314) found +(1313) found +[4103] Forked 1315 +(1315) found +[4102] Forked 1316 +(1316) found +[4101] Forked 1317 +(1317) found +[4100] Forked 1318 +(1318) found +[4099] Forked 1319 +(1319) found +[4098] Forked 1320 +(1320) found +[4097] Forked 1321 +(1321) found +[4096] Forked 1322 +(1322) found +[4095] Forked 1323 +(1323) found +[4094] Forked 1324 +(1324) found +[4093] Forked 1325 +(1325) found +[4092] Forked 1326 +(1326) found +[4091] Forked 1327 +(1327) found +[4090] Forked 1328 +(1328) found +[4089] Forked 1329 +(1329) found +[4088] Forked 1330 +(1330) found +[4087] Forked 1331 +(1331) found +[4086] Forked 1332 +(1332) found +[4085] Forked 1333 +(1333) found +[4084] Forked 1334 +(1334) found +[4083] Forked 1335 +(1335) found +[4082] Forked 1336 +(1336) found +[4081] Forked 1337 +(1337) found +[4080] Forked 1338 +(1338) found +[4079] Forked 1339 +(1339) found +[4078] Forked 1340 +(1340) found +[4077] Forked 1341 +(1341) found +[4076] Forked 1342 +(1342) found +[4075] Forked 1343 +(1343) found +[4074] Forked 1344 +(1344) found +[4073] Forked 1345 +(1345) found +[4072] Forked 1346 +(1346) found +[4071] Forked 1347 +(1347) found +[4070] Forked 1348 +(1348) found +[4069] Forked 1349 +(1349) found +[4068] Forked 1350 +(1350) found +[4067] Forked 1351 +(1351) found +[4066] Forked 1352 +(1352) found +[4065] Forked 1353 +(1353) found +[4064] Forked 1354 +(1354) found +[4063] Forked 1355 +(1355) found +[4062] Forked 1356 +(1356) found +[4061] Forked 1357 +(1357) found +[4060] Forked 1358 +(1358) found +[4059] Forked 1359 +(1359) found +[4058] Forked 1360 +(1360) found +[4057] Forked 1361 +(1361) found +[4056] Forked 1362 +(1362) found +[4055] Forked 1363 +(1363) found +[4054] Forked 1364 +(1364) found +[4053] Forked 1365 +(1365) found +[4052] Forked 1366 +(1366) found +[4051] Forked 1367 +(1367) found +[4050] Forked 1368 +(1368) found +[4049] Forked 1369 +(1369) found +[4048] Forked 1370 +(1370) found +[4047] Forked 1371 +(1371) found +[4046] Forked 1372 +(1372) found +[4045] Forked 1373 +[4044] Forked 1374 +(1373) found +(1374) found +[4043] Forked 1375 +[4042] Forked 1376 +(1375) found +(1376) found +[4041] Forked 1377 +[4040] Forked 1378 +(1377) found +(1378) found +[4039] Forked 1379 +[4038] Forked 1380 +(1379) found +(1380) found +[4037] Forked 1381 +[4036] Forked 1382 +(1381) found +(1382) found +[4035] Forked 1383 +[4034] Forked 1384 +(1383) found +(1384) found +[4033] Forked 1385 +[4032] Forked 1386 +(1385) found +(1386) found +[4031] Forked 1387 +[4030] Forked 1388 +(1387) found +(1388) found +[4029] Forked 1389 +[4028] Forked 1390 +(1389) found +(1390) found +[4027] Forked 1391 +[4026] Forked 1392 +(1391) found +(1392) found +[4025] Forked 1393 +[4024] Forked 1394 +(1393) found +(1394) found +[4023] Forked 1395 +[4022] Forked 1396 +(1395) found +(1396) found +[4021] Forked 1397 +[4020] Forked 1398 +(1397) found +(1398) found +[4019] Forked 1399 +[4018] Forked 1400 +(1399) found +(1400) found +[4017] Forked 1401 +[4016] Forked 1402 +(1401) found +(1402) found +[4015] Forked 1403 +[4014] Forked 1404 +(1403) found +(1404) found +[4013] Forked 1405 +[4012] Forked 1406 +(1405) found +(1406) found +[4011] Forked 1407 +[4010] Forked 1408 +(1407) found +(1408) found +[4009] Forked 1409 +[4008] Forked 1410 +(1409) found +(1410) found +[4007] Forked 1411 +[4006] Forked 1412 +(1411) found +(1412) found +[4005] Forked 1413 +[4004] Forked 1414 +(1413) found +(1414) found +[4003] Forked 1415 +[4002] Forked 1416 +(1415) found +(1416) found +[4001] Forked 1417 +[4000] Forked 1418 +(1417) found +(1418) found +[3999] Forked 1419 +[3998] Forked 1420 +(1419) found +(1420) found +[3997] Forked 1421 +[3996] Forked 1422 +(1421) found +(1422) found +[3995] Forked 1423 +[3994] Forked 1424 +(1423) found +(1424) found +[3993] Forked 1425 +[3992] Forked 1426 +(1425) found +(1426) found +[3991] Forked 1427 +[3990] Forked 1428 +(1427) found +(1428) found +[3989] Forked 1429 +[3988] Forked 1430 +(1429) found +(1430) found +[3987] Forked 1431 +[3986] Forked 1432 +(1431) found +(1432) found +[3985] Forked 1433 +[3984] Forked 1434 +(1433) found +(1434) found +[3983] Forked 1435 +[3982] Forked 1436 +(1435) found +(1436) found +[3981] Forked 1437 +[3980] Forked 1438 +(1437) found +(1438) found +[3979] Forked 1440 +[3978] Forked 1441 +(1440) found +(1441) found +[3977] Forked 1442 +[3976] Forked 1443 +(1442) found +(1443) found +[3975] Forked 1444 +[3974] Forked 1445 +(1444) found +(1445) found +[3973] Forked 1446 +[3972] Forked 1447 +(1446) found +(1447) found +[3971] Forked 1448 +[3970] Forked 1449 +(1448) found +(1449) found +[3969] Forked 1450 +[3968] Forked 1451 +(1450) found +(1451) found +[3967] Forked 1452 +[3966] Forked 1453 +(1452) found +(1453) found +[3965] Forked 1454 +[3964] Forked 1455 +(1454) found +(1455) found +[3963] Forked 1456 +[3962] Forked 1457 +(1456) found +(1457) found +[3961] Forked 1458 +[3960] Forked 1459 +(1458) found +(1459) found +[3959] Forked 1460 +[3958] Forked 1461 +(1460) found +(1461) found +[3957] Forked 1462 +[3956] Forked 1463 +(1462) found +(1463) found +[3955] Forked 1464 +[3954] Forked 1465 +(1464) found +(1465) found +[3953] Forked 1466 +(1466) found +[3952] Forked 1467 +(1467) found +[3951] Forked 1468 +(1468) found +[3950] Forked 1469 +(1469) found +[3949] Forked 1470 +(1470) found +[3948] Forked 1471 +(1471) found +[3947] Forked 1472 +(1472) found +[3946] Forked 1473 +(1473) found +[3945] Forked 1474 +(1474) found +[3944] Forked 1475 +(1475) found +[3943] Forked 1476 +(1476) found +[3942] Forked 1477 +(1477) found +[3941] Forked 1478 +(1478) found +[3940] Forked 1479 +(1479) found +[3939] Forked 1480 +(1480) found +[3938] Forked 1481 +(1481) found +[3937] Forked 1482 +(1482) found +[3936] Forked 1483 +(1483) found +[3935] Forked 1484 +(1484) found +[3934] Forked 1485 +(1485) found +[3933] Forked 1486 +(1486) found +[3932] Forked 1487 +(1487) found +[3931] Forked 1488 +(1488) found +[3930] Forked 1489 +(1489) found +[3929] Forked 1490 +(1490) found +[3928] Forked 1491 +(1491) found +[3927] Forked 1492 +(1492) found +[3926] Forked 1493 +(1493) found +[3925] Forked 1494 +(1494) found +[3924] Forked 1495 +(1495) found +[3923] Forked 1496 +(1496) found +[3922] Forked 1497 +(1497) found +[3921] Forked 1498 +(1498) found +[3920] Forked 1499 +(1499) found +[3919] Forked 1500 +(1500) found +[3918] Forked 1501 +[3917] Forked 1502 +(1501) found +(1502) found +[3916] Forked 1503 +[3915] Forked 1504 +(1503) found +(1504) found +[3914] Forked 1505 +[3913] Forked 1506 +(1505) found +(1506) found +[3912] Forked 1507 +[3911] Forked 1508 +(1507) found +(1508) found +[3910] Forked 1509 +[3909] Forked 1510 +(1509) found +(1510) found +[3908] Forked 1511 +[3907] Forked 1512 +(1511) found +(1512) found +[3906] Forked 1513 +[3905] Forked 1514 +(1513) found +(1514) found +[3904] Forked 1515 +[3903] Forked 1516 +(1515) found +(1516) found +[3902] Forked 1517 +[3901] Forked 1518 +(1517) found +(1518) found +[3900] Forked 1519 +[3899] Forked 1520 +(1519) found +(1520) found +[3898] Forked 1521 +[3897] Forked 1522 +(1521) found +(1522) found +[3896] Forked 1523 +[3895] Forked 1524 +(1523) found +(1524) found +[3894] Forked 1525 +[3893] Forked 1526 +(1525) found +(1526) found +[3892] Forked 1527 +[3891] Forked 1528 +(1527) found +(1528) found +[3890] Forked 1529 +[3889] Forked 1530 +(1529) found +(1530) found +[3888] Forked 1531 +[3887] Forked 1532 +(1531) found +(1532) found +[3886] Forked 1533 +[3885] Forked 1534 +(1533) found +(1534) found +[3884] Forked 1535 +[3883] Forked 1536 +(1535) found +(1536) found +[3882] Forked 1537 +[3881] Forked 1538 +(1537) found +(1538) found +[3880] Forked 1539 +[3879] Forked 1540 +(1539) found +(1540) found +[3878] Forked 1541 +[3877] Forked 1542 +(1541) found +(1542) found +[3876] Forked 1543 +[3875] Forked 1544 +(1543) found +(1544) found +[3874] Forked 1545 +[3873] Forked 1546 +(1545) found +(1546) found +[3872] Forked 1547 +(1547) found +[3871] Forked 1548 +(1548) found +[3870] Forked 1549 +(1549) found +[3869] Forked 1550 +(1550) found +[3868] Forked 1551 +(1551) found +[3867] Forked 1552 +(1552) found +[3866] Forked 1553 +(1553) found +[3865] Forked 1554 +(1554) found +[3864] Forked 1555 +(1555) found +[3863] Forked 1556 +(1556) found +[3862] Forked 1557 +(1557) found +[3861] Forked 1558 +(1558) found +[3860] Forked 1559 +(1559) found +[3859] Forked 1560 +(1560) found +[3858] Forked 1561 +(1561) found +[3857] Forked 1562 +(1562) found +[3856] Forked 1563 +(1563) found +[3855] Forked 1564 +(1564) found +[3854] Forked 1565 +(1565) found +[3853] Forked 1566 +(1566) found +[3852] Forked 1567 +(1567) found +[3851] Forked 1568 +(1568) found +[3850] Forked 1569 +(1569) found +[3849] Forked 1570 +(1570) found +[3848] Forked 1571 +(1571) found +[3847] Forked 1572 +(1572) found +[3846] Forked 1573 +(1573) found +[3845] Forked 1574 +(1574) found +[3844] Forked 1575 +(1575) found +[3843] Forked 1576 +(1576) found +[3842] Forked 1577 +(1577) found +[3841] Forked 1578 +(1578) found +[3840] Forked 1579 +(1579) found +[3839] Forked 1580 +(1580) found +[3838] Forked 1581 +[3837] Forked 1582 +(1581) found +(1582) found +[3836] Forked 1583 +[3835] Forked 1584 +(1583) found +(1584) found +[3834] Forked 1585 +[3833] Forked 1586 +(1585) found +(1586) found +[3832] Forked 1587 +[3831] Forked 1588 +(1587) found +(1588) found +[3830] Forked 1589 +[3829] Forked 1590 +(1589) found +(1590) found +[3828] Forked 1591 +[3827] Forked 1592 +(1591) found +(1592) found +[3826] Forked 1593 +[3825] Forked 1595 +(1593) found +(1595) found +[3824] Forked 1596 +[3823] Forked 1597 +(1596) found +(1597) found +[3822] Forked 1598 +[3821] Forked 1599 +(1598) found +(1599) found +[3820] Forked 1600 +[3819] Forked 1601 +(1600) found +(1601) found +[3818] Forked 1602 +[3817] Forked 1603 +(1602) found +(1603) found +[3816] Forked 1604 +[3815] Forked 1605 +(1604) found +(1605) found +[3814] Forked 1606 +[3813] Forked 1607 +(1606) found +(1607) found +[3812] Forked 1608 +[3811] Forked 1609 +(1608) found +(1609) found +[3810] Forked 1610 +[3809] Forked 1611 +(1610) found +(1611) found +[3808] Forked 1612 +[3807] Forked 1613 +(1612) found +(1613) found +[3806] Forked 1614 +[3805] Forked 1615 +(1614) found +(1615) found +[3804] Forked 1616 +[3803] Forked 1617 +(1616) found +(1617) found +[3802] Forked 1618 +[3801] Forked 1619 +(1618) found +(1619) found +[3800] Forked 1620 +[3799] Forked 1621 +(1620) found +(1621) found +[3798] Forked 1622 +[3797] Forked 1623 +(1622) found +(1623) found +[3796] Forked 1624 +[3795] Forked 1625 +(1624) found +(1625) found +[3794] Forked 1626 +[3793] Forked 1627 +(1626) found +(1627) found +[3792] Forked 1628 +(1628) found +[3791] Forked 1629 +(1629) found +[3790] Forked 1630 +(1630) found +[3789] Forked 1631 +(1631) found +[3788] Forked 1632 +(1632) found +[3787] Forked 1633 +(1633) found +[3786] Forked 1634 +(1634) found +[3785] Forked 1635 +(1635) found +[3784] Forked 1636 +(1636) found +[3783] Forked 1637 +(1637) found +[3782] Forked 1638 +(1638) found +[3781] Forked 1639 +(1639) found +[3780] Forked 1640 +(1640) found +[3779] Forked 1641 +(1641) found +[3778] Forked 1642 +(1642) found +[3777] Forked 1643 +(1643) found +[3776] Forked 1644 +(1644) found +[3775] Forked 1645 +(1645) found +[3774] Forked 1646 +(1646) found +[3773] Forked 1647 +(1647) found +[3772] Forked 1648 +(1648) found +[3771] Forked 1649 +(1649) found +[3770] Forked 1650 +(1650) found +[3769] Forked 1651 +(1651) found +[3768] Forked 1652 +(1652) found +[3767] Forked 1653 +(1653) found +[3766] Forked 1654 +(1654) found +[3765] Forked 1655 +(1655) found +[3764] Forked 1656 +(1656) found +[3763] Forked 1657 +(1657) found +[3762] Forked 1658 +(1658) found +[3761] Forked 1659 +(1659) found +[3760] Forked 1660 +(1660) found +[3759] Forked 1661 +(1661) found +[3758] Forked 1662 +(1662) found +[3757] Forked 1663 +[3756] Forked 1664 +(1663) found +(1664) found +[3755] Forked 1665 +[3754] Forked 1666 +(1665) found +(1666) found +[3753] Forked 1668 +[3752] Forked 1669 +(1668) found +(1669) found +[3751] Forked 1670 +[3750] Forked 1671 +(1670) found +(1671) found +[3749] Forked 1672 +[3748] Forked 1673 +(1672) found +(1673) found +[3747] Forked 1674 +[3746] Forked 1675 +(1674) found +(1675) found +[3745] Forked 1676 +[3744] Forked 1677 +(1676) found +(1677) found +[3743] Forked 1679 +[3742] Forked 1680 +(1679) found +(1680) found +[3741] Forked 1681 +[3740] Forked 1682 +(1681) found +(1682) found +[3739] Forked 1683 +[3738] Forked 1684 +(1683) found +(1684) found +[3737] Forked 1685 +[3736] Forked 1686 +(1685) found +(1686) found +[3735] Forked 1687 +[3734] Forked 1688 +(1687) found +(1688) found +[3733] Forked 1689 +[3732] Forked 1690 +(1689) found +(1690) found +[3731] Forked 1691 +[3730] Forked 1692 +(1691) found +(1692) found +[3729] Forked 1693 +[3728] Forked 1694 +(1693) found +(1694) found +[3727] Forked 1695 +[3726] Forked 1696 +(1695) found +(1696) found +[3725] Forked 1697 +[3724] Forked 1698 +(1697) found +(1698) found +[3723] Forked 1699 +[3722] Forked 1700 +(1699) found +(1700) found +[3721] Forked 1701 +[3720] Forked 1702 +(1701) found +(1702) found +[3719] Forked 1703 +[3718] Forked 1704 +(1703) found +(1704) found +[3717] Forked 1705 +[3716] Forked 1706 +(1705) found +(1706) found +[3715] Forked 1707 +[3714] Forked 1708 +(1707) found +(1708) found +[3713] Forked 1709 +[3712] Forked 1710 +(1709) found +(1710) found +[3711] Forked 1711 +(1711) found +[3710] Forked 1712 +(1712) found +[3709] Forked 1713 +(1713) found +[3708] Forked 1714 +(1714) found +[3707] Forked 1715 +(1715) found +[3706] Forked 1716 +(1716) found +[3705] Forked 1717 +(1717) found +[3704] Forked 1718 +(1718) found +[3703] Forked 1719 +(1719) found +[3702] Forked 1720 +(1720) found +[3701] Forked 1721 +(1721) found +[3700] Forked 1722 +(1722) found +[3699] Forked 1723 +(1723) found +[3698] Forked 1724 +(1724) found +[3697] Forked 1725 +(1725) found +[3696] Forked 1726 +(1726) found +[3695] Forked 1727 +(1727) found +[3694] Forked 1728 +(1728) found +[3693] Forked 1729 +(1729) found +[3692] Forked 1730 +(1730) found +[3691] Forked 1731 +(1731) found +[3690] Forked 1732 +(1732) found +[3689] Forked 1733 +(1733) found +[3688] Forked 1734 +(1734) found +[3687] Forked 1735 +(1735) found +[3686] Forked 1736 +(1736) found +[3685] Forked 1737 +(1737) found +[3684] Forked 1738 +(1738) found +[3683] Forked 1739 +(1739) found +[3682] Forked 1740 +(1740) found +[3681] Forked 1741 +(1741) found +[3680] Forked 1742 +(1742) found +[3679] Forked 1744 +(1744) found +[3678] Forked 1746 +(1746) found +[3677] Forked 1747 +(1747) found +[3676] Forked 1748 +[3675] Forked 1749 +(1748) found +(1749) found +[3674] Forked 1750 +[3673] Forked 1751 +(1750) found +(1751) found +[3672] Forked 1752 +[3671] Forked 1753 +(1752) found +(1753) found +[3670] Forked 1754 +[3669] Forked 1755 +(1754) found +(1755) found +[3668] Forked 1756 +[3667] Forked 1757 +(1756) found +(1757) found +[3666] Forked 1758 +[3665] Forked 1760 +(1758) found +(1760) found +[3664] Forked 1761 +[3663] Forked 1762 +(1761) found +(1762) found +[3662] Forked 1763 +[3661] Forked 1764 +(1763) found +(1764) found +[3660] Forked 1765 +[3659] Forked 1766 +(1765) found +(1766) found +[3658] Forked 1767 +[3657] Forked 1768 +(1767) found +(1768) found +[3656] Forked 1769 +[3655] Forked 1770 +(1769) found +(1770) found +[3654] Forked 1771 +[3653] Forked 1772 +(1771) found +(1772) found +[3652] Forked 1773 +[3651] Forked 1774 +(1773) found +(1774) found +[3650] Forked 1775 +[3649] Forked 1776 +(1775) found +(1776) found +[3648] Forked 1777 +[3647] Forked 1778 +(1777) found +(1778) found +[3646] Forked 1779 +[3645] Forked 1780 +(1779) found +(1780) found +[3644] Forked 1781 +[3643] Forked 1782 +(1781) found +(1782) found +[3642] Forked 1783 +[3641] Forked 1784 +(1783) found +(1784) found +[3640] Forked 1785 +[3639] Forked 1786 +(1785) found +(1786) found +[3638] Forked 1787 +[3637] Forked 1788 +(1787) found +(1788) found +[3636] Forked 1789 +[3635] Forked 1790 +(1789) found +(1790) found +[3634] Forked 1791 +[3633] Forked 1792 +(1791) found +(1792) found +[3632] Forked 1793 +[3631] Forked 1794 +(1793) found +(1794) found +[3630] Forked 1795 +[3629] Forked 1796 +(1795) found +(1796) found +[3628] Forked 1797 +[3627] Forked 1798 +(1797) found +(1798) found +[3626] Forked 1799 +[3625] Forked 1800 +(1799) found +(1800) found +[3624] Forked 1801 +[3623] Forked 1802 +(1801) found +(1802) found +[3622] Forked 1803 +[3621] Forked 1804 +(1803) found +(1804) found +[3620] Forked 1805 +[3619] Forked 1806 +(1805) found +(1806) found +[3618] Forked 1807 +[3617] Forked 1808 +(1807) found +(1808) found +[3616] Forked 1809 +[3615] Forked 1810 +(1809) found +(1810) found +[3614] Forked 1811 +[3613] Forked 1812 +(1811) found +(1812) found +[3612] Forked 1813 +[3611] Forked 1814 +(1813) found +(1814) found +[3610] Forked 1815 +(1815) found +[3609] Forked 1816 +[3608] Forked 1817 +(1816) found +(1817) found +[3607] Forked 1818 +[3606] Forked 1819 +(1818) found +(1819) found +[3605] Forked 1820 +[3604] Forked 1821 +(1820) found +(1821) found +[3603] Forked 1822 +[3602] Forked 1823 +(1822) found +(1823) found +[3601] Forked 1824 +[3600] Forked 1825 +(1824) found +(1825) found +[3599] Forked 1826 +[3598] Forked 1827 +(1826) found +(1827) found +[3597] Forked 1828 +[3596] Forked 1829 +(1828) found +(1829) found +[3595] Forked 1830 +[3594] Forked 1831 +(1830) found +(1831) found +[3593] Forked 1832 +[3592] Forked 1833 +(1832) found +(1833) found +[3591] Forked 1834 +[3590] Forked 1835 +(1834) found +(1835) found +[3589] Forked 1836 +[3588] Forked 1837 +(1836) found +(1837) found +[3587] Forked 1838 +(1838) found +[3586] Forked 1839 +(1839) found +[3585] Forked 1840 +(1840) found +[3584] Forked 1841 +(1841) found +[3583] Forked 1842 +(1842) found +[3582] Forked 1843 +(1843) found +[3581] Forked 1844 +(1844) found +[3580] Forked 1845 +(1845) found +[3579] Forked 1846 +(1846) found +[3578] Forked 1847 +(1847) found +[3577] Forked 1848 +(1848) found +[3576] Forked 1849 +(1849) found +[3575] Forked 1850 +(1850) found +[3574] Forked 1851 +(1851) found +[3573] Forked 1852 +(1852) found +[3572] Forked 1853 +(1853) found +[3571] Forked 1854 +(1854) found +[3570] Forked 1855 +(1855) found +[3569] Forked 1856 +(1856) found +[3568] Forked 1857 +(1857) found +[3567] Forked 1858 +(1858) found +[3566] Forked 1859 +(1859) found +[3565] Forked 1860 +(1860) found +[3564] Forked 1861 +(1861) found +[3563] Forked 1862 +(1862) found +[3562] Forked 1863 +(1863) found +[3561] Forked 1864 +(1864) found +[3560] Forked 1865 +(1865) found +[3559] Forked 1866 +(1866) found +[3558] Forked 1867 +(1867) found +[3557] Forked 1868 +(1868) found +[3556] Forked 1869 +(1869) found +[3555] Forked 1870 +(1870) found +[3554] Forked 1871 +(1871) found +[3553] Forked 1872 +(1872) found +[3552] Forked 1873 +(1873) found +[3551] Forked 1874 +(1874) found +[3550] Forked 1875 +(1875) found +[3549] Forked 1876 +(1876) found +[3548] Forked 1877 +[3547] Forked 1878 +(1877) found +(1878) found +[3546] Forked 1879 +[3545] Forked 1880 +(1879) found +(1880) found +[3544] Forked 1881 +[3543] Forked 1882 +(1881) found +(1882) found +[3542] Forked 1883 +[3541] Forked 1884 +(1883) found +(1884) found +[3540] Forked 1885 +[3539] Forked 1886 +(1885) found +(1886) found +[3538] Forked 1887 +[3537] Forked 1888 +(1887) found +(1888) found +[3536] Forked 1889 +[3535] Forked 1890 +(1889) found +(1890) found +[3534] Forked 1891 +[3533] Forked 1892 +(1891) found +(1892) found +[3532] Forked 1893 +[3531] Forked 1894 +(1893) found +(1894) found +[3530] Forked 1895 +[3529] Forked 1896 +(1896) found +(1895) found +[3528] Forked 1897 +(1897) found +[3527] Forked 1898 +(1898) found +[3526] Forked 1899 +(1899) found +[3525] Forked 1900 +(1900) found +[3524] Forked 1901 +(1901) found +[3523] Forked 1902 +(1902) found +[3522] Forked 1903 +(1903) found +[3521] Forked 1904 +(1904) found +[3520] Forked 1905 +(1905) found +[3519] Forked 1906 +(1906) found +[3518] Forked 1907 +(1907) found +[3517] Forked 1908 +(1908) found +[3516] Forked 1909 +(1909) found +[3515] Forked 1910 +(1910) found +[3514] Forked 1911 +(1911) found +[3513] Forked 1912 +(1912) found +[3512] Forked 1913 +(1913) found +[3511] Forked 1914 +(1914) found +[3510] Forked 1915 +(1915) found +[3509] Forked 1916 +(1916) found +[3508] Forked 1917 +(1917) found +[3507] Forked 1918 +(1918) found +[3506] Forked 1919 +(1919) found +[3505] Forked 1920 +(1920) found +[3504] Forked 1921 +(1921) found +[3503] Forked 1922 +(1922) found +[3502] Forked 1923 +(1923) found +[3501] Forked 1924 +(1924) found +[3500] Forked 1925 +(1925) found +[3499] Forked 1926 +(1926) found +[3498] Forked 1927 +(1927) found +[3497] Forked 1928 +(1928) found +[3496] Forked 1929 +(1929) found +[3495] Forked 1930 +(1930) found +[3494] Forked 1931 +(1931) found +[3493] Forked 1932 +(1932) found +[3492] Forked 1933 +(1933) found +[3491] Forked 1934 +(1934) found +[3490] Forked 1935 +(1935) found +[3489] Forked 1936 +(1936) found +[3488] Forked 1937 +(1937) found +[3487] Forked 1938 +(1938) found +[3486] Forked 1939 +(1939) found +[3485] Forked 1940 +(1940) found +[3484] Forked 1941 +(1941) found +[3483] Forked 1942 +(1942) found +[3482] Forked 1943 +(1943) found +[3481] Forked 1944 +(1944) found +[3480] Forked 1945 +(1945) found +[3479] Forked 1946 +(1946) found +[3478] Forked 1947 +(1947) found +[3477] Forked 1948 +(1948) found +[3476] Forked 1949 +(1949) found +[3475] Forked 1950 +[3474] Forked 1951 +(1950) found +(1951) found +[3473] Forked 1952 +[3472] Forked 1953 +(1952) found +(1953) found +[3471] Forked 1954 +[3470] Forked 1955 +(1954) found +(1955) found +[3469] Forked 1956 +[3468] Forked 1957 +(1956) found +(1957) found +[3467] Forked 1958 +[3466] Forked 1959 +(1958) found +(1959) found +[3465] Forked 1960 +[3464] Forked 1961 +(1960) found +(1961) found +[3463] Forked 1962 +[3462] Forked 1963 +(1962) found +(1963) found +[3461] Forked 1964 +[3460] Forked 1965 +(1964) found +(1965) found +[3459] Forked 1966 +[3458] Forked 1967 +(1966) found +(1967) found +[3457] Forked 1968 +[3456] Forked 1969 +(1968) found +(1969) found +[3455] Forked 1970 +[3454] Forked 1971 +(1970) found +(1971) found +[3453] Forked 1972 +[3452] Forked 1973 +(1972) found +(1973) found +[3451] Forked 1974 +[3450] Forked 1975 +(1974) found +(1975) found +[3449] Forked 1976 +[3448] Forked 1977 +(1976) found +(1977) found +[3447] Forked 1978 +[3446] Forked 1979 +(1978) found +(1979) found +[3445] Forked 1980 +[3444] Forked 1981 +(1980) found +(1981) found +[3443] Forked 1982 +[3442] Forked 1983 +(1982) found +(1983) found +[3441] Forked 1984 +[3440] Forked 1985 +(1984) found +(1985) found +[3439] Forked 1986 +[3438] Forked 1987 +(1986) found +(1987) found +[3437] Forked 1988 +(1988) found +[3436] Forked 1989 +[3435] Forked 1990 +(1989) found +(1990) found +[3434] Forked 1991 +[3433] Forked 1992 +(1991) found +(1992) found +[3432] Forked 1993 +(1993) found +[3431] Forked 1994 +(1994) found +[3430] Forked 1995 +(1995) found +[3429] Forked 1996 +(1996) found +[3428] Forked 1997 +(1997) found +[3427] Forked 1998 +(1998) found +[3426] Forked 1999 +(1999) found +[3425] Forked 2000 +(2000) found +[3424] Forked 2001 +(2001) found +[3423] Forked 2002 +(2002) found +[3422] Forked 2003 +(2003) found +[3421] Forked 2004 +(2004) found +[3420] Forked 2005 +(2005) found +[3419] Forked 2006 +(2006) found +[3418] Forked 2007 +(2007) found +[3417] Forked 2008 +(2008) found +[3416] Forked 2009 +(2009) found +[3415] Forked 2010 +(2010) found +[3414] Forked 2011 +(2011) found +[3413] Forked 2012 +(2012) found +[3412] Forked 2013 +(2013) found +[3411] Forked 2014 +(2014) found +[3410] Forked 2015 +(2015) found +[3409] Forked 2016 +(2016) found +[3408] Forked 2017 +(2017) found +[3407] Forked 2018 +(2018) found +[3406] Forked 2019 +(2019) found +[3405] Forked 2020 +(2020) found +[3404] Forked 2021 +(2021) found +[3403] Forked 2022 +(2022) found +[3402] Forked 2023 +(2023) found +[3401] Forked 2024 +(2024) found +[3400] Forked 2025 +(2025) found +[3399] Forked 2026 +(2026) found +[3398] Forked 2027 +(2027) found +[3397] Forked 2028 +(2028) found +[3396] Forked 2029 +(2029) found +[3395] Forked 2030 +(2030) found +[3394] Forked 2031 +[3393] Forked 2032 +(2031) found +(2032) found +[3392] Forked 2033 +[3391] Forked 2034 +(2033) found +(2034) found +[3390] Forked 2035 +[3389] Forked 2036 +(2035) found +(2036) found +[3388] Forked 2037 +[3387] Forked 2038 +(2037) found +(2038) found +[3386] Forked 2039 +[3385] Forked 2040 +(2039) found +(2040) found +[3384] Forked 2041 +[3383] Forked 2042 +(2041) found +(2042) found +[3382] Forked 2043 +[3381] Forked 2044 +(2043) found +(2044) found +[3380] Forked 2045 +[3379] Forked 2046 +(2045) found +(2046) found +[3378] Forked 2047 +[3377] Forked 2048 +(2047) found +(2048) found +[3376] Forked 2049 +[3375] Forked 2050 +(2049) found +(2050) found +[3374] Forked 2051 +[3373] Forked 2052 +(2051) found +(2052) found +[3372] Forked 2053 +[3371] Forked 2054 +(2053) found +(2054) found +[3370] Forked 2055 +[3369] Forked 2056 +(2055) found +(2056) found +[3368] Forked 2057 +[3367] Forked 2058 +(2057) found +(2058) found +[3366] Forked 2059 +[3365] Forked 2060 +(2059) found +(2060) found +[3364] Forked 2061 +[3363] Forked 2062 +(2061) found +(2062) found +[3362] Forked 2063 +[3361] Forked 2064 +(2064) found +(2063) found +[3360] Forked 2065 +(2065) found +[3359] Forked 2066 +(2066) found +[3358] Forked 2067 +(2067) found +[3357] Forked 2068 +(2068) found +[3356] Forked 2070 +(2070) found +[3355] Forked 2071 +(2071) found +[3354] Forked 2072 +(2072) found +[3353] Forked 2073 +(2073) found +[3352] Forked 2074 +(2074) found +[3351] Forked 2075 +(2075) found +[3350] Forked 2076 +(2076) found +[3349] Forked 2077 +(2077) found +[3348] Forked 2078 +(2078) found +[3347] Forked 2079 +(2079) found +[3346] Forked 2080 +(2080) found +[3345] Forked 2081 +(2081) found +[3344] Forked 2082 +(2082) found +[3343] Forked 2083 +(2083) found +[3342] Forked 2084 +(2084) found +[3341] Forked 2085 +(2085) found +[3340] Forked 2086 +(2086) found +[3339] Forked 2087 +(2087) found +[3338] Forked 2088 +(2088) found +[3337] Forked 2089 +(2089) found +[3336] Forked 2090 +(2090) found +[3335] Forked 2091 +(2091) found +[3334] Forked 2092 +(2092) found +[3333] Forked 2093 +(2093) found +[3332] Forked 2094 +(2094) found +[3331] Forked 2095 +(2095) found +[3330] Forked 2096 +(2096) found +[3329] Forked 2097 +(2097) found +[3328] Forked 2098 +(2098) found +[3327] Forked 2099 +(2099) found +[3326] Forked 2100 +(2100) found +[3325] Forked 2101 +(2101) found +[3324] Forked 2102 +(2102) found +[3323] Forked 2103 +(2103) found +[3322] Forked 2104 +(2104) found +[3321] Forked 2105 +(2105) found +[3320] Forked 2106 +(2106) found +[3319] Forked 2109 +(2109) found +[3318] Forked 2110 +(2110) found +[3317] Forked 2111 +(2111) found +[3316] Forked 2112 +[3315] Forked 2113 +(2112) found +(2113) found +[3314] Forked 2114 +[3313] Forked 2115 +(2114) found +(2115) found +[3312] Forked 2116 +[3311] Forked 2117 +(2116) found +(2117) found +[3310] Forked 2118 +[3309] Forked 2119 +(2118) found +(2119) found +[3308] Forked 2120 +[3307] Forked 2121 +(2120) found +(2121) found +[3306] Forked 2122 +[3305] Forked 2123 +(2122) found +(2123) found +[3304] Forked 2124 +[3303] Forked 2125 +(2124) found +(2125) found +[3302] Forked 2126 +[3301] Forked 2127 +(2126) found +(2127) found +[3300] Forked 2128 +[3299] Forked 2129 +(2128) found +(2129) found +[3298] Forked 2130 +[3297] Forked 2131 +(2130) found +(2131) found +[3296] Forked 2132 +[3295] Forked 2133 +(2132) found +(2133) found +[3294] Forked 2134 +[3293] Forked 2135 +(2134) found +(2135) found +[3292] Forked 2136 +[3291] Forked 2137 +(2136) found +(2137) found +[3290] Forked 2138 +[3289] Forked 2139 +(2138) found +(2139) found +[3288] Forked 2140 +[3287] Forked 2141 +(2140) found +(2141) found +[3286] Forked 2142 +[3285] Forked 2143 +(2142) found +(2143) found +[3284] Forked 2144 +[3283] Forked 2145 +(2144) found +(2145) found +[3282] Forked 2146 +[3281] Forked 2147 +(2146) found +(2147) found +[3280] Forked 2148 +[3279] Forked 2149 +(2148) found +(2149) found +[3278] Forked 2150 +[3277] Forked 2151 +(2150) found +(2151) found +[3276] Forked 2152 +[3275] Forked 2153 +(2152) found +(2153) found +[3274] Forked 2154 +(2154) found +[3273] Forked 2155 +(2155) found +[3272] Forked 2156 +(2156) found +[3271] Forked 2157 +(2157) found +[3270] Forked 2158 +(2158) found +[3269] Forked 2160 +(2160) found +[3268] Forked 2161 +(2161) found +[3267] Forked 2162 +(2162) found +[3266] Forked 2163 +(2163) found +[3265] Forked 2164 +(2164) found +[3264] Forked 2165 +(2165) found +[3263] Forked 2166 +(2166) found +[3262] Forked 2167 +(2167) found +[3261] Forked 2168 +(2168) found +[3260] Forked 2169 +(2169) found +[3259] Forked 2170 +(2170) found +[3258] Forked 2171 +(2171) found +[3257] Forked 2172 +(2172) found +[3256] Forked 2173 +(2173) found +[3255] Forked 2174 +(2174) found +[3254] Forked 2175 +(2175) found +[3253] Forked 2176 +(2176) found +[3252] Forked 2177 +(2177) found +[3251] Forked 2178 +(2178) found +[3250] Forked 2179 +(2179) found +[3249] Forked 2180 +(2180) found +[3248] Forked 2181 +(2181) found +[3247] Forked 2182 +(2182) found +[3246] Forked 2183 +(2183) found +[3245] Forked 2184 +(2184) found +[3244] Forked 2185 +(2185) found +[3243] Forked 2186 +(2186) found +[3242] Forked 2187 +(2187) found +[3241] Forked 2188 +(2188) found +[3240] Forked 2189 +(2189) found +[3239] Forked 2190 +(2190) found +[3238] Forked 2191 +(2191) found +[3237] Forked 2192 +(2192) found +[3236] Forked 2193 +[3235] Forked 2194 +(2193) found +(2194) found +[3234] Forked 2195 +[3233] Forked 2196 +(2195) found +(2196) found +[3232] Forked 2197 +[3231] Forked 2198 +(2197) found +(2198) found +[3230] Forked 2199 +[3229] Forked 2200 +(2199) found +(2200) found +[3228] Forked 2201 +[3227] Forked 2202 +(2201) found +(2202) found +[3226] Forked 2203 +[3225] Forked 2204 +(2203) found +(2204) found +[3224] Forked 2205 +[3223] Forked 2206 +(2205) found +(2206) found +[3222] Forked 2207 +[3221] Forked 2208 +(2207) found +(2208) found +[3220] Forked 2209 +[3219] Forked 2210 +(2209) found +(2210) found +[3218] Forked 2211 +[3217] Forked 2212 +(2211) found +(2212) found +[3216] Forked 2213 +[3215] Forked 2214 +(2213) found +(2214) found +[3214] Forked 2215 +[3213] Forked 2216 +(2215) found +(2216) found +[3212] Forked 2217 +[3211] Forked 2218 +(2217) found +(2218) found +[3210] Forked 2219 +[3209] Forked 2220 +(2219) found +(2220) found +[3208] Forked 2221 +[3207] Forked 2222 +(2221) found +(2222) found +[3206] Forked 2223 +[3205] Forked 2224 +(2223) found +(2224) found +[3204] Forked 2225 +[3203] Forked 2226 +(2225) found +(2226) found +[3202] Forked 2227 +[3201] Forked 2228 +(2227) found +(2228) found +[3200] Forked 2229 +[3199] Forked 2230 +(2229) found +(2230) found +[3198] Forked 2231 +[3197] Forked 2232 +(2231) found +(2232) found +[3196] Forked 2233 +[3195] Forked 2234 +(2234) found +(2233) found +[3194] Forked 2235 +(2235) found +[3193] Forked 2236 +(2236) found +[3192] Forked 2237 +(2237) found +[3191] Forked 2238 +(2238) found +[3190] Forked 2239 +(2239) found +[3189] Forked 2240 +(2240) found +[3188] Forked 2241 +(2241) found +[3187] Forked 2242 +(2242) found +[3186] Forked 2243 +(2243) found +[3185] Forked 2244 +(2244) found +[3184] Forked 2245 +(2245) found +[3183] Forked 2246 +(2246) found +[3182] Forked 2247 +(2247) found +[3181] Forked 2248 +(2248) found +[3180] Forked 2249 +(2249) found +[3179] Forked 2250 +(2250) found +[3178] Forked 2251 +(2251) found +[3177] Forked 2252 +(2252) found +[3176] Forked 2253 +(2253) found +[3175] Forked 2254 +(2254) found +[3174] Forked 2255 +(2255) found +[3173] Forked 2256 +(2256) found +[3172] Forked 2257 +(2257) found +[3171] Forked 2258 +(2258) found +[3170] Forked 2259 +(2259) found +[3169] Forked 2260 +(2260) found +[3168] Forked 2261 +(2261) found +[3167] Forked 2265 +(2265) found +[3166] Forked 2266 +(2266) found +[3165] Forked 2267 +(2267) found +[3164] Forked 2268 +(2268) found +[3163] Forked 2269 +(2269) found +[3162] Forked 2270 +(2270) found +[3161] Forked 2271 +(2271) found +[3160] Forked 2272 +(2272) found +[3159] Forked 2273 +(2273) found +[3158] Forked 2274 +(2274) found +[3157] Forked 2275 +(2275) found +[3156] Forked 2276 +[3155] Forked 2277 +(2276) found +(2277) found +[3154] Forked 2278 +[3153] Forked 2279 +(2278) found +(2279) found +[3152] Forked 2280 +[3151] Forked 2281 +(2280) found +(2281) found +[3150] Forked 2282 +[3149] Forked 2283 +(2282) found +(2283) found +[3148] Forked 2284 +[3147] Forked 2285 +(2284) found +(2285) found +[3146] Forked 2286 +[3145] Forked 2287 +(2286) found +(2287) found +[3144] Forked 2288 +[3143] Forked 2289 +(2288) found +(2289) found +[3142] Forked 2290 +[3141] Forked 2291 +(2290) found +(2291) found +[3140] Forked 2292 +[3139] Forked 2293 +(2292) found +(2293) found +[3138] Forked 2294 +[3137] Forked 2295 +(2294) found +(2295) found +[3136] Forked 2296 +[3135] Forked 2297 +(2296) found +(2297) found +[3134] Forked 2298 +[3133] Forked 2299 +(2298) found +(2299) found +[3132] Forked 2300 +[3131] Forked 2301 +(2300) found +(2301) found +[3130] Forked 2302 +[3129] Forked 2303 +(2302) found +(2303) found +[3128] Forked 2304 +[3127] Forked 2305 +(2304) found +(2305) found +[3126] Forked 2306 +[3125] Forked 2307 +(2306) found +(2307) found +[3124] Forked 2308 +[3123] Forked 2309 +(2308) found +(2309) found +[3122] Forked 2310 +[3121] Forked 2311 +(2310) found +(2311) found +[3120] Forked 2312 +[3119] Forked 2313 +(2312) found +(2313) found +[3118] Forked 2314 +[3117] Forked 2315 +(2314) found +(2315) found +[3116] Forked 2316 +[3115] Forked 2317 +(2316) found +(2317) found +[3114] Forked 2318 +[3113] Forked 2319 +(2318) found +(2319) found +[3112] Forked 2320 +(2320) found +[3111] Forked 2321 +(2321) found +[3110] Forked 2322 +(2322) found +[3109] Forked 2323 +(2323) found +[3108] Forked 2324 +(2324) found +[3107] Forked 2325 +(2325) found +[3106] Forked 2326 +(2326) found +[3105] Forked 2327 +(2327) found +[3104] Forked 2328 +(2328) found +[3103] Forked 2329 +(2329) found +[3102] Forked 2330 +(2330) found +[3101] Forked 2331 +(2331) found +[3100] Forked 2332 +(2332) found +[3099] Forked 2333 +(2333) found +[3098] Forked 2334 +(2334) found +[3097] Forked 2335 +(2335) found +[3096] Forked 2336 +(2336) found +[3095] Forked 2337 +(2337) found +[3094] Forked 2338 +(2338) found +[3093] Forked 2339 +(2339) found +[3092] Forked 2340 +(2340) found +[3091] Forked 2341 +(2341) found +[3090] Forked 2342 +(2342) found +[3089] Forked 2343 +(2343) found +[3088] Forked 2344 +(2344) found +[3087] Forked 2345 +(2345) found +[3086] Forked 2346 +(2346) found +[3085] Forked 2347 +(2347) found +[3084] Forked 2348 +(2348) found +[3083] Forked 2349 +(2349) found +[3082] Forked 2350 +(2350) found +[3081] Forked 2351 +(2351) found +[3080] Forked 2352 +(2352) found +[3079] Forked 2353 +(2353) found +[3078] Forked 2354 +(2354) found +[3077] Forked 2355 +(2355) found +[3076] Forked 2356 +(2356) found +[3075] Forked 2357 +(2357) found +[3074] Forked 2358 +(2358) found +[3073] Forked 2359 +[3072] Forked 2360 +(2359) found +(2360) found +[3071] Forked 2361 +[3070] Forked 2362 +(2361) found +(2362) found +[3069] Forked 2363 +[3068] Forked 2364 +(2363) found +(2364) found +[3067] Forked 2365 +[3066] Forked 2366 +(2365) found +(2366) found +[3065] Forked 2367 +[3064] Forked 2368 +(2367) found +(2368) found +[3063] Forked 2369 +[3062] Forked 2370 +(2369) found +(2370) found +[3061] Forked 2371 +[3060] Forked 2372 +(2371) found +(2372) found +[3059] Forked 2373 +[3058] Forked 2374 +(2373) found +(2374) found +[3057] Forked 2375 +[3056] Forked 2376 +(2375) found +(2376) found +[3055] Forked 2377 +[3054] Forked 2378 +(2377) found +(2378) found +[3053] Forked 2379 +[3052] Forked 2380 +(2379) found +(2380) found +[3051] Forked 2381 +[3050] Forked 2382 +(2381) found +(2382) found +[3049] Forked 2383 +[3048] Forked 2384 +(2383) found +(2384) found +[3047] Forked 2385 +[3046] Forked 2386 +(2385) found +(2386) found +[3045] Forked 2387 +[3044] Forked 2388 +(2387) found +(2388) found +[3043] Forked 2389 +[3042] Forked 2390 +(2389) found +(2390) found +[3041] Forked 2391 +[3040] Forked 2392 +(2391) found +(2392) found +[3039] Forked 2393 +[3038] Forked 2394 +(2393) found +(2394) found +[3037] Forked 2395 +[3036] Forked 2396 +(2395) found +(2396) found +[3035] Forked 2397 +[3034] Forked 2399 +(2397) found +(2399) found +[3033] Forked 2400 +(2400) found +[3032] Forked 2401 +(2401) found +[3031] Forked 2402 +(2402) found +[3030] Forked 2404 +(2404) found +[3029] Forked 2405 +(2405) found +[3028] Forked 2406 +(2406) found +[3027] Forked 2407 +(2407) found +[3026] Forked 2408 +(2408) found +[3025] Forked 2409 +(2409) found +[3024] Forked 2410 +(2410) found +[3023] Forked 2411 +(2411) found +[3022] Forked 2412 +(2412) found +[3021] Forked 2413 +(2413) found +[3020] Forked 2414 +(2414) found +[3019] Forked 2415 +(2415) found +[3018] Forked 2416 +(2416) found +[3017] Forked 2417 +(2417) found +[3016] Forked 2418 +(2418) found +[3015] Forked 2419 +(2419) found +[3014] Forked 2420 +(2420) found +[3013] Forked 2421 +(2421) found +[3012] Forked 2422 +(2422) found +[3011] Forked 2423 +(2423) found +[3010] Forked 2424 +(2424) found +[3009] Forked 2425 +(2425) found +[3008] Forked 2426 +(2426) found +[3007] Forked 2427 +(2427) found +[3006] Forked 2428 +(2428) found +[3005] Forked 2429 +(2429) found +[3004] Forked 2430 +(2430) found +[3003] Forked 2431 +(2431) found +[3002] Forked 2432 +(2432) found +[3001] Forked 2433 +(2433) found +[3000] Forked 2434 +(2434) found +[2999] Forked 2435 +(2435) found +[2998] Forked 2436 +(2436) found +[2997] Forked 2437 +(2437) found +[2996] Forked 2438 +(2438) found +[2995] Forked 2439 +(2439) found +[2994] Forked 2440 +(2440) found +[2993] Forked 2441 +[2992] Forked 2442 +(2441) found +(2442) found +[2991] Forked 2443 +[2990] Forked 2444 +(2443) found +(2444) found +[2989] Forked 2445 +[2988] Forked 2446 +(2445) found +(2446) found +[2987] Forked 2447 +[2986] Forked 2448 +(2447) found +(2448) found +[2985] Forked 2449 +[2984] Forked 2450 +(2449) found +(2450) found +[2983] Forked 2451 +[2982] Forked 2452 +(2451) found +(2452) found +[2981] Forked 2453 +[2980] Forked 2454 +(2453) found +(2454) found +[2979] Forked 2455 +[2978] Forked 2456 +(2455) found +(2456) found +[2977] Forked 2457 +[2976] Forked 2458 +(2457) found +(2458) found +[2975] Forked 2459 +[2974] Forked 2460 +(2459) found +(2460) found +[2973] Forked 2461 +[2972] Forked 2462 +(2461) found +(2462) found +[2971] Forked 2463 +[2970] Forked 2464 +(2463) found +(2464) found +[2969] Forked 2465 +[2968] Forked 2466 +(2465) found +(2466) found +[2967] Forked 2467 +[2966] Forked 2468 +(2467) found +(2468) found +[2965] Forked 2469 +[2964] Forked 2470 +(2469) found +(2470) found +[2963] Forked 2471 +[2962] Forked 2472 +(2471) found +(2472) found +[2961] Forked 2473 +[2960] Forked 2474 +(2473) found +(2474) found +[2959] Forked 2475 +[2958] Forked 2476 +(2475) found +(2476) found +[2957] Forked 2477 +[2956] Forked 2478 +(2477) found +(2478) found +[2955] Forked 2479 +[2954] Forked 2480 +(2479) found +(2480) found +[2953] Forked 2481 +[2952] Forked 2482 +(2481) found +(2482) found +[2951] Forked 2483 +[2950] Forked 2484 +(2483) found +(2484) found +[2949] Forked 2485 +(2485) found +[2948] Forked 2486 +(2486) found +[2947] Forked 2487 +(2487) found +[2946] Forked 2488 +(2488) found +[2945] Forked 2489 +(2489) found +[2944] Forked 2490 +(2490) found +[2943] Forked 2491 +(2491) found +[2942] Forked 2492 +(2492) found +[2941] Forked 2493 +(2493) found +[2940] Forked 2494 +(2494) found +[2939] Forked 2495 +(2495) found +[2938] Forked 2496 +(2496) found +[2937] Forked 2497 +(2497) found +[2936] Forked 2498 +(2498) found +[2935] Forked 2499 +(2499) found +[2934] Forked 2500 +(2500) found +[2933] Forked 2501 +(2501) found +[2932] Forked 2502 +(2502) found +[2931] Forked 2503 +(2503) found +[2930] Forked 2504 +(2504) found +[2929] Forked 2505 +(2505) found +[2928] Forked 2506 +(2506) found +[2927] Forked 2507 +(2507) found +[2926] Forked 2508 +(2508) found +[2925] Forked 2509 +(2509) found +[2924] Forked 2510 +(2510) found +[2923] Forked 2512 +(2512) found +[2922] Forked 2513 +(2513) found +[2921] Forked 2514 +(2514) found +[2920] Forked 2515 +(2515) found +[2919] Forked 2516 +(2516) found +[2918] Forked 2517 +(2517) found +[2917] Forked 2518 +(2518) found +[2916] Forked 2519 +(2519) found +[2915] Forked 2520 +(2520) found +[2914] Forked 2521 +(2521) found +[2913] Forked 2522 +(2522) found +[2912] Forked 2523 +(2523) found +[2911] Forked 2525 +[2910] Forked 2526 +(2525) found +(2526) found +[2909] Forked 2527 +[2908] Forked 2528 +(2527) found +(2528) found +[2907] Forked 2529 +[2906] Forked 2530 +(2529) found +(2530) found +[2905] Forked 2531 +[2904] Forked 2532 +(2531) found +(2532) found +[2903] Forked 2533 +[2902] Forked 2534 +(2533) found +(2534) found +[2901] Forked 2535 +[2900] Forked 2536 +(2535) found +(2536) found +[2899] Forked 2537 +[2898] Forked 2538 +(2537) found +(2538) found +[2897] Forked 2539 +[2896] Forked 2541 +(2539) found +(2541) found +[2895] Forked 2542 +[2894] Forked 2543 +(2542) found +(2543) found +[2893] Forked 2544 +[2892] Forked 2545 +(2544) found +(2545) found +[2891] Forked 2546 +[2890] Forked 2547 +(2546) found +(2547) found +[2889] Forked 2548 +[2888] Forked 2549 +(2548) found +(2549) found +[2887] Forked 2550 +[2886] Forked 2551 +(2550) found +(2551) found +[2885] Forked 2552 +[2884] Forked 2553 +(2552) found +(2553) found +[2883] Forked 2554 +[2882] Forked 2555 +(2554) found +(2555) found +[2881] Forked 2556 +[2880] Forked 2557 +(2556) found +(2557) found +[2879] Forked 2558 +[2878] Forked 2559 +(2558) found +(2559) found +[2877] Forked 2560 +[2876] Forked 2561 +(2560) found +(2561) found +[2875] Forked 2562 +[2874] Forked 2563 +(2562) found +(2563) found +[2873] Forked 2564 +[2872] Forked 2565 +(2564) found +(2565) found +[2871] Forked 2566 +[2870] Forked 2567 +(2566) found +(2567) found +[2869] Forked 2568 +[2868] Forked 2569 +(2568) found +(2569) found +[2867] Forked 2570 +(2570) found +[2866] Forked 2571 +(2571) found +[2865] Forked 2572 +(2572) found +[2864] Forked 2573 +(2573) found +[2863] Forked 2574 +(2574) found +[2862] Forked 2575 +(2575) found +[2861] Forked 2576 +(2576) found +[2860] Forked 2577 +(2577) found +[2859] Forked 2578 +(2578) found +[2858] Forked 2579 +(2579) found +[2857] Forked 2580 +(2580) found +[2856] Forked 2581 +(2581) found +[2855] Forked 2582 +(2582) found +[2854] Forked 2583 +(2583) found +[2853] Forked 2584 +(2584) found +[2852] Forked 2585 +(2585) found +[2851] Forked 2586 +(2586) found +[2850] Forked 2587 +(2587) found +[2849] Forked 2588 +(2588) found +[2848] Forked 2589 +(2589) found +[2847] Forked 2590 +(2590) found +[2846] Forked 2591 +(2591) found +[2845] Forked 2592 +(2592) found +[2844] Forked 2593 +(2593) found +[2843] Forked 2594 +(2594) found +[2842] Forked 2595 +(2595) found +[2841] Forked 2596 +(2596) found +[2840] Forked 2597 +(2597) found +[2839] Forked 2598 +(2598) found +[2838] Forked 2599 +(2599) found +[2837] Forked 2600 +(2600) found +[2836] Forked 2601 +(2601) found +[2835] Forked 2602 +(2602) found +[2834] Forked 2603 +(2603) found +[2833] Forked 2604 +(2604) found +[2832] Forked 2605 +(2605) found +[2831] Forked 2606 +(2606) found +[2830] Forked 2607 +(2607) found +[2829] Forked 2608 +(2608) found +[2828] Forked 2609 +(2609) found +[2827] Forked 2610 +(2610) found +[2826] Forked 2611 +[2825] Forked 2612 +(2611) found +(2612) found +[2824] Forked 2613 +[2823] Forked 2614 +(2613) found +(2614) found +[2822] Forked 2615 +[2821] Forked 2616 +(2615) found +(2616) found +[2820] Forked 2617 +[2819] Forked 2618 +(2617) found +(2618) found +[2818] Forked 2619 +[2817] Forked 2620 +(2619) found +(2620) found +[2816] Forked 2621 +[2815] Forked 2622 +(2621) found +(2622) found +[2814] Forked 2623 +[2813] Forked 2624 +(2623) found +(2624) found +[2812] Forked 2625 +[2811] Forked 2626 +(2625) found +(2626) found +[2810] Forked 2627 +[2809] Forked 2628 +(2627) found +(2628) found +[2808] Forked 2629 +[2807] Forked 2630 +(2629) found +(2630) found +[2806] Forked 2631 +[2805] Forked 2632 +(2631) found +(2632) found +[2804] Forked 2633 +[2803] Forked 2634 +(2633) found +(2634) found +[2802] Forked 2635 +[2801] Forked 2636 +(2635) found +(2636) found +[2800] Forked 2637 +[2799] Forked 2638 +(2637) found +(2638) found +[2798] Forked 2639 +[2797] Forked 2640 +(2639) found +(2640) found +[2796] Forked 2641 +[2795] Forked 2642 +(2641) found +(2642) found +[2794] Forked 2643 +[2793] Forked 2644 +(2643) found +(2644) found +[2792] Forked 2645 +[2791] Forked 2646 +(2645) found +(2646) found +[2790] Forked 2647 +[2789] Forked 2648 +(2647) found +(2648) found +[2788] Forked 2649 +[2787] Forked 2650 +(2649) found +(2650) found +[2786] Forked 2651 +(2651) found +[2785] Forked 2652 +(2652) found +[2784] Forked 2653 +(2653) found +[2783] Forked 2654 +(2654) found +[2782] Forked 2655 +(2655) found +[2781] Forked 2659 +(2659) found +[2780] Forked 2662 +(2662) found +[2779] Forked 2663 +(2663) found +[2778] Forked 2664 +(2664) found +[2777] Forked 2665 +(2665) found +[2776] Forked 2666 +(2666) found +[2775] Forked 2669 +(2669) found +[2774] Forked 2670 +(2670) found +[2773] Forked 2671 +(2671) found +[2772] Forked 2672 +(2672) found +[2771] Forked 2673 +(2673) found +[2770] Forked 2674 +(2674) found +[2769] Forked 2675 +(2675) found +[2768] Forked 2676 +(2676) found +[2767] Forked 2677 +(2677) found +[2766] Forked 2678 +(2678) found +[2765] Forked 2679 +(2679) found +[2764] Forked 2680 +(2680) found +[2763] Forked 2681 +(2681) found +[2762] Forked 2682 +(2682) found +[2761] Forked 2683 +(2683) found +[2760] Forked 2684 +(2684) found +[2759] Forked 2685 +(2685) found +[2758] Forked 2686 +(2686) found +[2757] Forked 2687 +(2687) found +[2756] Forked 2688 +(2688) found +[2755] Forked 2689 +(2689) found +[2754] Forked 2690 +(2690) found +[2753] Forked 2691 +(2691) found +[2752] Forked 2692 +(2692) found +[2751] Forked 2693 +(2693) found +[2750] Forked 2694 +(2694) found +[2749] Forked 2695 +(2695) found +[2748] Forked 2696 +(2696) found +[2747] Forked 2697 +[2746] Forked 2698 +(2697) found +(2698) found +[2745] Forked 2699 +[2744] Forked 2700 +(2699) found +(2700) found +[2743] Forked 2701 +[2742] Forked 2703 +(2701) found +(2703) found +[2741] Forked 2704 +[2740] Forked 2705 +(2704) found +(2705) found +[2739] Forked 2706 +[2738] Forked 2707 +(2706) found +(2707) found +[2737] Forked 2708 +[2736] Forked 2709 +(2708) found +(2709) found +[2735] Forked 2710 +[2734] Forked 2711 +(2710) found +(2711) found +[2733] Forked 2712 +[2732] Forked 2713 +(2712) found +(2713) found +[2731] Forked 2714 +[2730] Forked 2715 +(2714) found +(2715) found +[2729] Forked 2716 +[2728] Forked 2717 +(2716) found +(2717) found +[2727] Forked 2718 +[2726] Forked 2719 +(2718) found +(2719) found +[2725] Forked 2720 +[2724] Forked 2723 +(2720) found +(2723) found +[2723] Forked 2725 +(2725) found +[2722] Forked 2728 +[2721] Forked 2729 +(2728) found +(2729) found +[2720] Forked 2730 +[2719] Forked 2731 +(2730) found +(2731) found +[2718] Forked 2732 +[2717] Forked 2733 +(2732) found +(2733) found +[2716] Forked 2734 +[2715] Forked 2735 +(2734) found +(2735) found +[2714] Forked 2736 +[2713] Forked 2737 +(2736) found +(2737) found +[2712] Forked 2738 +[2711] Forked 2739 +(2738) found +(2739) found +[2710] Forked 2740 +[2709] Forked 2741 +(2740) found +(2741) found +[2708] Forked 2742 +[2707] Forked 2743 +(2742) found +(2743) found +[2706] Forked 2744 +[2705] Forked 2745 +(2744) found +(2745) found +[2704] Forked 2746 +(2746) found +[2703] Forked 2747 +(2747) found +[2702] Forked 2748 +(2748) found +[2701] Forked 2749 +(2749) found +[2700] Forked 2750 +(2750) found +[2699] Forked 2751 +(2751) found +[2698] Forked 2752 +(2752) found +[2697] Forked 2753 +(2753) found +[2696] Forked 2754 +(2754) found +[2695] Forked 2755 +(2755) found +[2694] Forked 2756 +(2756) found +[2693] Forked 2757 +(2757) found +[2692] Forked 2758 +(2758) found +[2691] Forked 2760 +(2760) found +[2690] Forked 2761 +(2761) found +[2689] Forked 2762 +(2762) found +[2688] Forked 2763 +(2763) found +[2687] Forked 2764 +(2764) found +[2686] Forked 2765 +(2765) found +[2685] Forked 2766 +(2766) found +[2684] Forked 2767 +(2767) found +[2683] Forked 2768 +(2768) found +[2682] Forked 2769 +(2769) found +[2681] Forked 2770 +(2770) found +[2680] Forked 2771 +(2771) found +[2679] Forked 2772 +(2772) found +[2678] Forked 2773 +(2773) found +[2677] Forked 2774 +(2774) found +[2676] Forked 2775 +(2775) found +[2675] Forked 2776 +(2776) found +[2674] Forked 2777 +(2777) found +[2673] Forked 2778 +(2778) found +[2672] Forked 2779 +(2779) found +[2671] Forked 2780 +(2780) found +[2670] Forked 2781 +(2781) found +[2669] Forked 2782 +(2782) found +[2668] Forked 2783 +(2783) found +[2667] Forked 2784 +(2784) found +[2666] Forked 2785 +[2665] Forked 2786 +(2785) found +(2786) found +[2664] Forked 2787 +[2663] Forked 2788 +(2787) found +(2788) found +[2662] Forked 2789 +[2661] Forked 2790 +(2789) found +(2790) found +[2660] Forked 2791 +[2659] Forked 2792 +(2791) found +(2792) found +[2658] Forked 2793 +[2657] Forked 2794 +(2793) found +(2794) found +[2656] Forked 2795 +[2655] Forked 2796 +(2795) found +(2796) found +[2654] Forked 2797 +[2653] Forked 2798 +(2797) found +(2798) found +[2652] Forked 2799 +[2651] Forked 2800 +(2799) found +(2800) found +[2650] Forked 2801 +[2649] Forked 2802 +(2801) found +(2802) found +[2648] Forked 2803 +[2647] Forked 2804 +(2803) found +(2804) found +[2646] Forked 2805 +[2645] Forked 2806 +(2805) found +(2806) found +[2644] Forked 2807 +[2643] Forked 2808 +(2807) found +(2808) found +[2642] Forked 2809 +[2641] Forked 2810 +(2809) found +(2810) found +[2640] Forked 2811 +[2639] Forked 2812 +(2811) found +(2812) found +[2638] Forked 2813 +[2637] Forked 2814 +(2813) found +(2814) found +[2636] Forked 2815 +[2635] Forked 2816 +(2815) found +(2816) found +[2634] Forked 2817 +[2633] Forked 2818 +(2817) found +(2818) found +[2632] Forked 2819 +[2631] Forked 2820 +(2819) found +(2820) found +[2630] Forked 2821 +[2629] Forked 2822 +(2821) found +(2822) found +[2628] Forked 2823 +[2627] Forked 2824 +(2823) found +(2824) found +[2626] Forked 2825 +[2625] Forked 2826 +(2825) found +(2826) found +[2624] Forked 2827 +[2623] Forked 2830 +(2827) found +(2830) found +[2622] Forked 2831 +(2831) found +[2621] Forked 2832 +(2832) found +[2620] Forked 2833 +(2833) found +[2619] Forked 2834 +(2834) found +[2618] Forked 2835 +(2835) found +[2617] Forked 2836 +(2836) found +[2616] Forked 2837 +(2837) found +[2615] Forked 2838 +(2838) found +[2614] Forked 2839 +(2839) found +[2613] Forked 2840 +(2840) found +[2612] Forked 2841 +(2841) found +[2611] Forked 2843 +(2843) found +[2610] Forked 2844 +(2844) found +[2609] Forked 2845 +(2845) found +[2608] Forked 2846 +(2846) found +[2607] Forked 2847 +(2847) found +[2606] Forked 2848 +(2848) found +[2605] Forked 2849 +(2849) found +[2604] Forked 2850 +(2850) found +[2603] Forked 2851 +(2851) found +[2602] Forked 2852 +(2852) found +[2601] Forked 2853 +(2853) found +[2600] Forked 2854 +(2854) found +[2599] Forked 2855 +(2855) found +[2598] Forked 2856 +(2856) found +[2597] Forked 2857 +(2857) found +[2596] Forked 2858 +(2858) found +[2595] Forked 2859 +(2859) found +[2594] Forked 2860 +(2860) found +[2593] Forked 2861 +(2861) found +[2592] Forked 2862 +(2862) found +[2591] Forked 2863 +(2863) found +[2590] Forked 2864 +(2864) found +[2589] Forked 2865 +(2865) found +[2588] Forked 2866 +(2866) found +[2587] Forked 2867 +(2867) found +[2586] Forked 2868 +(2868) found +[2585] Forked 2869 +(2869) found +[2584] Forked 2870 +[2583] Forked 2871 +(2870) found +(2871) found +[2582] Forked 2872 +[2581] Forked 2873 +(2872) found +(2873) found +[2580] Forked 2874 +[2579] Forked 2875 +(2874) found +(2875) found +[2578] Forked 2876 +(2876) found +[2577] Forked 2877 +[2576] Forked 2878 +(2877) found +(2878) found +[2575] Forked 2879 +[2574] Forked 2880 +(2879) found +(2880) found +[2573] Forked 2881 +[2572] Forked 2882 +(2881) found +(2882) found +[2571] Forked 2883 +[2570] Forked 2884 +(2883) found +(2884) found +[2569] Forked 2885 +[2568] Forked 2886 +(2885) found +(2886) found +[2567] Forked 2887 +[2566] Forked 2888 +(2887) found +(2888) found +[2565] Forked 2889 +[2564] Forked 2890 +(2889) found +(2890) found +[2563] Forked 2891 +[2562] Forked 2892 +(2891) found +(2892) found +[2561] Forked 2893 +[2560] Forked 2894 +(2893) found +(2894) found +[2559] Forked 2895 +[2558] Forked 2896 +(2895) found +(2896) found +[2557] Forked 2897 +[2556] Forked 2898 +(2897) found +(2898) found +[2555] Forked 2899 +[2554] Forked 2900 +(2899) found +(2900) found +[2553] Forked 2901 +[2552] Forked 2902 +(2901) found +(2902) found +[2551] Forked 2903 +[2550] Forked 2904 +(2903) found +(2904) found +[2549] Forked 2905 +(2905) found +[2548] Forked 2906 +(2906) found +[2547] Forked 2907 +[2546] Forked 2908 +(2907) found +(2908) found +[2545] Forked 2909 +[2544] Forked 2910 +(2909) found +(2910) found +[2543] Forked 2911 +[2542] Forked 2912 +(2911) found +(2912) found +[2541] Forked 2913 +[2540] Forked 2914 +(2913) found +(2914) found +[2539] Forked 2915 +[2538] Forked 2916 +(2915) found +(2916) found +[2537] Forked 2917 +[2536] Forked 2918 +(2917) found +(2918) found +[2535] Forked 2919 +[2534] Forked 2920 +(2919) found +(2920) found +[2533] Forked 2921 +[2532] Forked 2922 +(2921) found +(2922) found +[2531] Forked 2923 +[2530] Forked 2924 +(2923) found +(2924) found +[2529] Forked 2925 +[2528] Forked 2926 +(2925) found +(2926) found +[2527] Forked 2927 +[2526] Forked 2928 +(2927) found +(2928) found +[2525] Forked 2929 +[2524] Forked 2930 +(2929) found +(2930) found +[2523] Forked 2932 +[2522] Forked 2933 +(2932) found +(2933) found +[2521] Forked 2934 +[2520] Forked 2935 +(2934) found +(2935) found +[2519] Forked 2936 +[2518] Forked 2937 +(2936) found +(2937) found +[2517] Forked 2938 +[2516] Forked 2939 +(2938) found +(2939) found +[2515] Forked 2940 +[2514] Forked 2941 +(2940) found +(2941) found +[2513] Forked 2942 +[2512] Forked 2943 +(2942) found +(2943) found +[2511] Forked 2944 +[2510] Forked 2945 +(2944) found +(2945) found +[2509] Forked 2946 +[2508] Forked 2947 +(2946) found +(2947) found +[2507] Forked 2948 +[2506] Forked 2949 +(2948) found +(2949) found +[2505] Forked 2950 +[2504] Forked 2951 +(2950) found +(2951) found +[2503] Forked 2952 +[2502] Forked 2953 +(2952) found +(2953) found +[2501] Forked 2956 +[2500] Forked 2957 +(2956) found +(2957) found +[2499] Forked 2958 +[2498] Forked 2959 +(2958) found +(2959) found +[2497] Forked 2960 +[2496] Forked 2961 +(2960) found +(2961) found +[2495] Forked 2962 +[2494] Forked 2963 +(2962) found +(2963) found +[2493] Forked 2964 +[2492] Forked 2965 +(2964) found +(2965) found +[2491] Forked 2966 +[2490] Forked 2967 +(2966) found +(2967) found +[2489] Forked 2968 +[2488] Forked 2969 +(2968) found +(2969) found +[2487] Forked 2970 +[2486] Forked 2971 +(2970) found +(2971) found +[2485] Forked 2972 +[2484] Forked 2973 +(2972) found +(2973) found +[2483] Forked 2974 +[2482] Forked 2975 +(2974) found +(2975) found +[2481] Forked 2976 +[2480] Forked 2977 +(2976) found +(2977) found +[2479] Forked 2978 +[2478] Forked 2979 +(2978) found +(2979) found +[2477] Forked 2980 +[2476] Forked 2981 +(2980) found +(2981) found +[2475] Forked 2983 +[2474] Forked 2984 +(2983) found +(2984) found +[2473] Forked 2987 +[2472] Forked 2992 +(2987) found +(2992) found +[2471] Forked 3049 +[2470] Forked 3050 +(3049) found +(3050) found +[2469] Forked 3051 +[2468] Forked 3052 +(3051) found +(3052) found +[2467] Forked 3053 +[2466] Forked 3054 +(3053) found +(3054) found +[2465] Forked 3055 +[2464] Forked 3056 +(3055) found +(3056) found +[2463] Forked 3057 +[2462] Forked 3058 +(3057) found +(3058) found +[2461] Forked 3059 +[2460] Forked 3060 +(3059) found +(3060) found +[2459] Forked 3061 +[2458] Forked 3062 +(3061) found +(3062) found +[2457] Forked 3063 +[2456] Forked 3064 +(3063) found +(3064) found +[2455] Forked 3065 +[2454] Forked 3066 +(3065) found +(3066) found +[2453] Forked 3067 +[2452] Forked 3068 +(3067) found +(3068) found +[2451] Forked 3069 +(3069) found +[2450] Forked 3070 +(3070) found +[2449] Forked 3071 +(3071) found +[2448] Forked 3072 +(3072) found +[2447] Forked 3073 +(3073) found +[2446] Forked 3074 +(3074) found +[2445] Forked 3075 +(3075) found +[2444] Forked 3076 +(3076) found +[2443] Forked 3077 +(3077) found +[2442] Forked 3078 +(3078) found +[2441] Forked 3079 +(3079) found +[2440] Forked 3080 +(3080) found +[2439] Forked 3081 +(3081) found +[2438] Forked 3082 +(3082) found +[2437] Forked 3083 +(3083) found +[2436] Forked 3085 +(3085) found +[2435] Forked 3086 +(3086) found +[2434] Forked 3087 +(3087) found +[2433] Forked 3088 +(3088) found +[2432] Forked 3089 +(3089) found +[2431] Forked 3090 +(3090) found +[2430] Forked 3091 +(3091) found +[2429] Forked 3093 +(3093) found +[2428] Forked 3094 +(3094) found +[2427] Forked 3095 +(3095) found +[2426] Forked 3096 +(3096) found +[2425] Forked 3097 +(3097) found +[2424] Forked 3098 +(3098) found +[2423] Forked 3099 +(3099) found +[2422] Forked 3101 +(3101) found +[2421] Forked 3102 +(3102) found +[2420] Forked 3103 +(3103) found +[2419] Forked 3104 +(3104) found +[2418] Forked 3105 +(3105) found +[2417] Forked 3106 +(3106) found +[2416] Forked 3107 +(3107) found +[2415] Forked 3108 +(3108) found +[2414] Forked 3109 +(3109) found +[2413] Forked 3110 +[2412] Forked 3112 +(3110) found +(3112) found +[2411] Forked 3113 +[2410] Forked 3114 +(3113) found +(3114) found +[2409] Forked 3115 +[2408] Forked 3116 +(3115) found +(3116) found +[2407] Forked 3117 +[2406] Forked 3118 +(3117) found +(3118) found +[2405] Forked 3119 +[2404] Forked 3120 +(3119) found +(3120) found +[2403] Forked 3121 +[2402] Forked 3123 +(3121) found +(3123) found +[2401] Forked 3124 +[2400] Forked 3126 +(3124) found +(3126) found +[2399] Forked 3128 +[2398] Forked 3129 +(3128) found +(3129) found +[2397] Forked 3130 +[2396] Forked 3131 +(3130) found +(3131) found +[2395] Forked 3132 +[2394] Forked 3133 +(3132) found +(3133) found +[2393] Forked 3134 +[2392] Forked 3135 +(3134) found +(3135) found +[2391] Forked 3136 +[2390] Forked 3137 +(3136) found +(3137) found +[2389] Forked 3138 +[2388] Forked 3139 +(3138) found +(3139) found +[2387] Forked 3140 +[2386] Forked 3141 +(3140) found +(3141) found +[2385] Forked 3142 +[2384] Forked 3143 +(3142) found +(3143) found +[2383] Forked 3144 +[2382] Forked 3145 +(3144) found +(3145) found +[2381] Forked 3147 +[2380] Forked 3148 +(3147) found +(3148) found +[2379] Forked 3149 +[2378] Forked 3150 +(3149) found +(3150) found +[2377] Forked 3151 +[2376] Forked 3152 +(3151) found +(3152) found +[2375] Forked 3153 +[2374] Forked 3154 +(3153) found +(3154) found +[2373] Forked 3155 +[2372] Forked 3156 +(3155) found +(3156) found +[2371] Forked 3157 +[2370] Forked 3158 +(3157) found +(3158) found +[2369] Forked 3159 +(3159) found +[2368] Forked 3160 +(3160) found +[2367] Forked 3163 +(3163) found +[2366] Forked 3164 +(3164) found +[2365] Forked 3165 +(3165) found +[2364] Forked 3166 +(3166) found +[2363] Forked 3167 +(3167) found +[2362] Forked 3168 +(3168) found +[2361] Forked 3169 +(3169) found +[2360] Forked 3170 +(3170) found +[2359] Forked 3171 +(3171) found +[2358] Forked 3172 +(3172) found +[2357] Forked 3173 +(3173) found +[2356] Forked 3174 +(3174) found +[2355] Forked 3175 +(3175) found +[2354] Forked 3176 +(3176) found +[2353] Forked 3177 +(3177) found +[2352] Forked 3178 +(3178) found +[2351] Forked 3179 +(3179) found +[2350] Forked 3180 +(3180) found +[2349] Forked 3181 +(3181) found +[2348] Forked 3182 +(3182) found +[2347] Forked 3183 +(3183) found +[2346] Forked 3184 +(3184) found +[2345] Forked 3185 +(3185) found +[2344] Forked 3186 +(3186) found +[2343] Forked 3187 +(3187) found +[2342] Forked 3188 +(3188) found +[2341] Forked 3189 +(3189) found +[2340] Forked 3190 +(3190) found +[2339] Forked 3191 +(3191) found +[2338] Forked 3192 +(3192) found +[2337] Forked 3195 +(3195) found +[2336] Forked 3196 +(3196) found +[2335] Forked 3197 +(3197) found +[2334] Forked 3198 +(3198) found +[2333] Forked 3199 +(3199) found +[2332] Forked 3200 +(3200) found +[2331] Forked 3201 +[2330] Forked 3202 +(3201) found +(3202) found +[2329] Forked 3203 +[2328] Forked 3204 +(3203) found +(3204) found +[2327] Forked 3205 +[2326] Forked 3206 +(3205) found +(3206) found +[2325] Forked 3207 +[2324] Forked 3208 +(3207) found +(3208) found +[2323] Forked 3209 +[2322] Forked 3210 +(3209) found +(3210) found +[2321] Forked 3211 +[2320] Forked 3212 +(3211) found +(3212) found +[2319] Forked 3213 +[2318] Forked 3214 +(3213) found +(3214) found +[2317] Forked 3215 +[2316] Forked 3216 +(3215) found +(3216) found +[2315] Forked 3217 +[2314] Forked 3218 +(3217) found +(3218) found +[2313] Forked 3219 +[2312] Forked 3220 +(3219) found +(3220) found +[2311] Forked 3221 +[2310] Forked 3222 +(3221) found +(3222) found +[2309] Forked 3223 +[2308] Forked 3224 +(3223) found +(3224) found +[2307] Forked 3225 +[2306] Forked 3227 +(3225) found +(3227) found +[2305] Forked 3228 +[2304] Forked 3229 +(3228) found +(3229) found +[2303] Forked 3230 +[2302] Forked 3231 +(3230) found +(3231) found +[2301] Forked 3232 +[2300] Forked 3233 +(3232) found +(3233) found +[2299] Forked 3234 +[2298] Forked 3235 +(3234) found +(3235) found +[2297] Forked 3236 +[2296] Forked 3237 +(3236) found +(3237) found +[2295] Forked 3238 +[2294] Forked 3239 +(3238) found +(3239) found +[2293] Forked 3240 +[2292] Forked 3241 +(3240) found +(3241) found +[2291] Forked 3242 +[2290] Forked 3243 +(3242) found +(3243) found +[2289] Forked 3244 +[2288] Forked 3245 +(3244) found +(3245) found +[2287] Forked 3249 +(3249) found +[2286] Forked 3250 +(3250) found +[2285] Forked 3251 +(3251) found +[2284] Forked 3252 +(3252) found +[2283] Forked 3253 +(3253) found +[2282] Forked 3254 +(3254) found +[2281] Forked 3255 +(3255) found +[2280] Forked 3256 +(3256) found +[2279] Forked 3257 +(3257) found +[2278] Forked 3258 +(3258) found +[2277] Forked 3259 +(3259) found +[2276] Forked 3260 +(3260) found +[2275] Forked 3261 +(3261) found +[2274] Forked 3262 +(3262) found +[2273] Forked 3263 +(3263) found +[2272] Forked 3264 +(3264) found +[2271] Forked 3265 +(3265) found +[2270] Forked 3266 +(3266) found +[2269] Forked 3267 +(3267) found +[2268] Forked 3268 +(3268) found +[2267] Forked 3269 +(3269) found +[2266] Forked 3270 +(3270) found +[2265] Forked 3271 +(3271) found +[2264] Forked 3272 +(3272) found +[2263] Forked 3273 +(3273) found +[2262] Forked 3274 +(3274) found +[2261] Forked 3275 +(3275) found +[2260] Forked 3276 +(3276) found +[2259] Forked 3277 +(3277) found +[2258] Forked 3278 +(3278) found +[2257] Forked 3279 +(3279) found +[2256] Forked 3280 +(3280) found +[2255] Forked 3281 +(3281) found +[2254] Forked 3282 +(3282) found +[2253] Forked 3283 +(3283) found +[2252] Forked 3284 +(3284) found +[2251] Forked 3285 +(3285) found +[2250] Forked 3286 +(3286) found +[2249] Forked 3287 +[2248] Forked 3288 +(3287) found +(3288) found +[2247] Forked 3289 +[2246] Forked 3290 +(3289) found +(3290) found +[2245] Forked 3291 +[2244] Forked 3292 +(3291) found +(3292) found +[2243] Forked 3293 +[2242] Forked 3294 +(3293) found +(3294) found +[2241] Forked 3295 +[2240] Forked 3296 +(3295) found +(3296) found +[2239] Forked 3297 +[2238] Forked 3298 +(3297) found +(3298) found +[2237] Forked 3299 +[2236] Forked 3300 +(3299) found +(3300) found +[2235] Forked 3301 +[2234] Forked 3302 +(3301) found +(3302) found +[2233] Forked 3303 +[2232] Forked 3304 +(3303) found +(3304) found +[2231] Forked 3305 +[2230] Forked 3306 +(3305) found +(3306) found +[2229] Forked 3307 +[2228] Forked 3308 +(3307) found +(3308) found +[2227] Forked 3309 +[2226] Forked 3310 +(3309) found +(3310) found +[2225] Forked 3311 +[2224] Forked 3312 +(3311) found +(3312) found +[2223] Forked 3313 +[2222] Forked 3314 +(3313) found +(3314) found +[2221] Forked 3315 +[2220] Forked 3317 +(3315) found +(3317) found +[2219] Forked 3318 +[2218] Forked 3319 +(3318) found +(3319) found +[2217] Forked 3320 +[2216] Forked 3321 +(3320) found +(3321) found +[2215] Forked 3322 +[2214] Forked 3323 +(3322) found +(3323) found +[2213] Forked 3324 +[2212] Forked 3325 +(3324) found +(3325) found +[2211] Forked 3326 +[2210] Forked 3327 +(3326) found +(3327) found +[2209] Forked 3333 +[2208] Forked 3334 +(3333) found +(3334) found +[2207] Forked 3335 +(3335) found +[2206] Forked 3336 +(3336) found +[2205] Forked 3337 +(3337) found +[2204] Forked 3338 +(3338) found +[2203] Forked 3339 +(3339) found +[2202] Forked 3340 +(3340) found +[2201] Forked 3341 +(3341) found +[2200] Forked 3342 +(3342) found +[2199] Forked 3343 +(3343) found +[2198] Forked 3344 +(3344) found +[2197] Forked 3345 +(3345) found +[2196] Forked 3347 +(3347) found +[2195] Forked 3348 +(3348) found +[2194] Forked 3349 +(3349) found +[2193] Forked 3350 +(3350) found +[2192] Forked 3351 +(3351) found +[2191] Forked 3352 +(3352) found +[2190] Forked 3353 +(3353) found +[2189] Forked 3354 +(3354) found +[2188] Forked 3355 +(3355) found +[2187] Forked 3356 +(3356) found +[2186] Forked 3357 +(3357) found +[2185] Forked 3358 +(3358) found +[2184] Forked 3359 +(3359) found +[2183] Forked 3360 +(3360) found +[2182] Forked 3361 +(3361) found +[2181] Forked 3362 +(3362) found +[2180] Forked 3363 +(3363) found +[2179] Forked 3364 +(3364) found +[2178] Forked 3365 +(3365) found +[2177] Forked 3366 +(3366) found +[2176] Forked 3367 +(3367) found +[2175] Forked 3368 +(3368) found +[2174] Forked 3369 +(3369) found +[2173] Forked 3370 +(3370) found +[2172] Forked 3371 +(3371) found +[2171] Forked 3372 +(3372) found +[2170] Forked 3373 +(3373) found +[2169] Forked 3382 +[2168] Forked 3383 +(3382) found +(3383) found +[2167] Forked 3384 +[2166] Forked 3385 +(3384) found +(3385) found +[2165] Forked 3386 +[2164] Forked 3387 +(3386) found +(3387) found +[2163] Forked 3388 +[2162] Forked 3389 +(3388) found +(3389) found +[2161] Forked 3390 +[2160] Forked 3391 +(3390) found +(3391) found +[2159] Forked 3392 +[2158] Forked 3393 +(3392) found +(3393) found +[2157] Forked 3394 +[2156] Forked 3395 +(3394) found +(3395) found +[2155] Forked 3396 +[2154] Forked 3397 +(3396) found +(3397) found +[2153] Forked 3398 +[2152] Forked 3399 +(3398) found +(3399) found +[2151] Forked 3401 +[2150] Forked 3402 +(3401) found +(3402) found +[2149] Forked 3403 +[2148] Forked 3404 +(3403) found +(3404) found +[2147] Forked 3405 +[2146] Forked 3406 +(3405) found +(3406) found +[2145] Forked 3407 +[2144] Forked 3408 +(3407) found +(3408) found +[2143] Forked 3409 +[2142] Forked 3410 +(3409) found +(3410) found +[2141] Forked 3411 +[2140] Forked 3412 +(3411) found +(3412) found +[2139] Forked 3413 +[2138] Forked 3414 +(3413) found +(3414) found +[2137] Forked 3415 +[2136] Forked 3416 +(3415) found +(3416) found +[2135] Forked 3417 +[2134] Forked 3418 +(3417) found +(3418) found +[2133] Forked 3419 +[2132] Forked 3420 +(3419) found +(3420) found +[2131] Forked 3421 +[2130] Forked 3422 +(3421) found +(3422) found +[2129] Forked 3423 +[2128] Forked 3424 +(3423) found +(3424) found +[2127] Forked 3425 +[2126] Forked 3426 +(3425) found +(3426) found +[2125] Forked 3427 +(3427) found +[2124] Forked 3428 +(3428) found +[2123] Forked 3429 +(3429) found +[2122] Forked 3430 +(3430) found +[2121] Forked 3431 +(3431) found +[2120] Forked 3432 +(3432) found +[2119] Forked 3433 +(3433) found +[2118] Forked 3434 +(3434) found +[2117] Forked 3435 +(3435) found +[2116] Forked 3436 +(3436) found +[2115] Forked 3437 +(3437) found +[2114] Forked 3438 +(3438) found +[2113] Forked 3439 +(3439) found +[2112] Forked 3440 +(3440) found +[2111] Forked 3441 +(3441) found +[2110] Forked 3442 +(3442) found +[2109] Forked 3443 +(3443) found +[2108] Forked 3444 +(3444) found +[2107] Forked 3445 +(3445) found +[2106] Forked 3446 +(3446) found +[2105] Forked 3447 +(3447) found +[2104] Forked 3448 +(3448) found +[2103] Forked 3449 +(3449) found +[2102] Forked 3450 +(3450) found +[2101] Forked 3451 +(3451) found +[2100] Forked 3452 +(3452) found +[2099] Forked 3453 +(3453) found +[2098] Forked 3454 +(3454) found +[2097] Forked 3455 +(3455) found +[2096] Forked 3456 +(3456) found +[2095] Forked 3457 +(3457) found +[2094] Forked 3458 +(3458) found +[2093] Forked 3459 +(3459) found +[2092] Forked 3460 +(3460) found +[2091] Forked 3461 +(3461) found +[2090] Forked 3462 +(3462) found +[2089] Forked 3463 +(3463) found +[2088] Forked 3464 +(3464) found +[2087] Forked 3465 +[2086] Forked 3466 +(3465) found +(3466) found +[2085] Forked 3467 +[2084] Forked 3468 +(3467) found +(3468) found +[2083] Forked 3469 +[2082] Forked 3470 +(3469) found +(3470) found +[2081] Forked 3471 +[2080] Forked 3472 +(3471) found +(3472) found +[2079] Forked 3473 +[2078] Forked 3474 +(3473) found +(3474) found +[2077] Forked 3475 +[2076] Forked 3476 +(3475) found +(3476) found +[2075] Forked 3477 +[2074] Forked 3478 +(3477) found +(3478) found +[2073] Forked 3479 +[2072] Forked 3480 +(3480) found +(3479) found +[2071] Forked 3481 +(3481) found +[2070] Forked 3482 +(3482) found +[2069] Forked 3483 +(3483) found +[2068] Forked 3484 +(3484) found +[2067] Forked 3485 +(3485) found +[2066] Forked 3486 +(3486) found +[2065] Forked 3487 +(3487) found +[2064] Forked 3488 +(3488) found +[2063] Forked 3489 +(3489) found +[2062] Forked 3490 +(3490) found +[2061] Forked 3491 +(3491) found +[2060] Forked 3492 +(3492) found +[2059] Forked 3493 +[2058] Forked 3494 +(3493) found +(3494) found +[2057] Forked 3495 +[2056] Forked 3496 +(3495) found +(3496) found +[2055] Forked 3497 +(3497) found +[2054] Forked 3498 +(3498) found +[2053] Forked 3499 +(3499) found +[2052] Forked 3500 +(3500) found +[2051] Forked 3501 +(3501) found +[2050] Forked 3502 +(3502) found +[2049] Forked 3503 +(3503) found +[2048] Forked 3504 +(3504) found +[2047] Forked 3505 +(3505) found +[2046] Forked 3506 +(3506) found +[2045] Forked 3507 +(3507) found +[2044] Forked 3508 +(3508) found +[2043] Forked 3509 +(3509) found +[2042] Forked 3510 +(3510) found +[2041] Forked 3511 +(3511) found +[2040] Forked 3512 +(3512) found +[2039] Forked 3513 +(3513) found +[2038] Forked 3514 +(3514) found +[2037] Forked 3515 +(3515) found +[2036] Forked 3516 +(3516) found +[2035] Forked 3517 +(3517) found +[2034] Forked 3518 +(3518) found +[2033] Forked 3519 +(3519) found +[2032] Forked 3520 +(3520) found +[2031] Forked 3521 +(3521) found +[2030] Forked 3522 +(3522) found +[2029] Forked 3523 +(3523) found +[2028] Forked 3524 +(3524) found +[2027] Forked 3525 +(3525) found +[2026] Forked 3526 +(3526) found +[2025] Forked 3527 +(3527) found +[2024] Forked 3528 +(3528) found +[2023] Forked 3529 +(3529) found +[2022] Forked 3530 +(3530) found +[2021] Forked 3531 +(3531) found +[2020] Forked 3532 +(3532) found +[2019] Forked 3533 +(3533) found +[2018] Forked 3534 +[2017] Forked 3535 +(3534) found +(3535) found +[2016] Forked 3536 +[2015] Forked 3537 +(3536) found +(3537) found +[2014] Forked 3538 +[2013] Forked 3539 +(3538) found +(3539) found +[2012] Forked 3540 +[2011] Forked 3541 +(3540) found +(3541) found +[2010] Forked 3542 +[2009] Forked 3543 +(3542) found +(3543) found +[2008] Forked 3544 +[2007] Forked 3545 +(3544) found +(3545) found +[2006] Forked 3546 +[2005] Forked 3548 +(3546) found +(3548) found +[2004] Forked 3549 +(3549) found +[2003] Forked 3550 +(3550) found +[2002] Forked 3551 +(3551) found +[2001] Forked 3552 +(3552) found +[2000] Forked 3553 +(3553) found +[1999] Forked 3554 +(3554) found +[1998] Forked 3555 +(3555) found +[1997] Forked 3556 +(3556) found +[1996] Forked 3557 +(3557) found +[1995] Forked 3558 +(3558) found +[1994] Forked 3559 +(3559) found +[1993] Forked 3560 +(3560) found +[1992] Forked 3561 +(3561) found +[1991] Forked 3562 +(3562) found +[1990] Forked 3563 +(3563) found +[1989] Forked 3564 +(3564) found +[1988] Forked 3565 +(3565) found +[1987] Forked 3566 +(3566) found +[1986] Forked 3567 +(3567) found +[1985] Forked 3568 +(3568) found +[1984] Forked 3569 +(3569) found +[1983] Forked 3570 +(3570) found +[1982] Forked 3571 +(3571) found +[1981] Forked 3572 +(3572) found +[1980] Forked 3573 +(3573) found +[1979] Forked 3574 +(3574) found +[1978] Forked 3575 +(3575) found +[1977] Forked 3576 +(3576) found +[1976] Forked 3577 +(3577) found +[1975] Forked 3578 +(3578) found +[1974] Forked 3579 +(3579) found +[1973] Forked 3580 +(3580) found +[1972] Forked 3581 +(3581) found +[1971] Forked 3582 +(3582) found +[1970] Forked 3583 +(3583) found +[1969] Forked 3584 +(3584) found +[1968] Forked 3585 +(3585) found +[1967] Forked 3586 +(3586) found +[1966] Forked 3587 +(3587) found +[1965] Forked 3588 +(3588) found +[1964] Forked 3589 +(3589) found +[1963] Forked 3590 +(3590) found +[1962] Forked 3591 +(3591) found +[1961] Forked 3592 +(3592) found +[1960] Forked 3593 +(3593) found +[1959] Forked 3594 +(3594) found +[1958] Forked 3595 +(3595) found +[1957] Forked 3596 +(3596) found +[1956] Forked 3597 +(3597) found +[1955] Forked 3598 +(3598) found +[1954] Forked 3599 +(3599) found +[1953] Forked 3600 +(3600) found +[1952] Forked 3601 +(3601) found +[1951] Forked 3602 +(3602) found +[1950] Forked 3603 +(3603) found +[1949] Forked 3604 +(3604) found +[1948] Forked 3605 +(3605) found +[1947] Forked 3606 +(3606) found +[1946] Forked 3607 +(3607) found +[1945] Forked 3608 +[1944] Forked 3609 +(3608) found +(3609) found +[1943] Forked 3610 +[1942] Forked 3611 +(3610) found +(3611) found +[1941] Forked 3612 +[1940] Forked 3613 +(3612) found +(3613) found +[1939] Forked 3614 +[1938] Forked 3615 +(3614) found +(3615) found +[1937] Forked 3616 +[1936] Forked 3617 +(3616) found +(3617) found +[1935] Forked 3618 +[1934] Forked 3619 +(3618) found +(3619) found +[1933] Forked 3620 +[1932] Forked 3621 +(3620) found +(3621) found +[1931] Forked 3622 +[1930] Forked 3623 +(3622) found +(3623) found +[1929] Forked 3624 +[1928] Forked 3625 +(3624) found +(3625) found +[1927] Forked 3626 +[1926] Forked 3627 +(3626) found +(3627) found +[1925] Forked 3628 +[1924] Forked 3629 +(3628) found +(3629) found +[1923] Forked 3630 +[1922] Forked 3631 +(3630) found +(3631) found +[1921] Forked 3632 +[1920] Forked 3633 +(3632) found +(3633) found +[1919] Forked 3634 +[1918] Forked 3635 +(3634) found +(3635) found +[1917] Forked 3636 +[1916] Forked 3637 +(3636) found +(3637) found +[1915] Forked 3638 +[1914] Forked 3639 +(3638) found +(3639) found +[1913] Forked 3640 +[1912] Forked 3641 +(3640) found +(3641) found +[1911] Forked 3642 +[1910] Forked 3643 +(3642) found +(3643) found +[1909] Forked 3644 +[1908] Forked 3645 +(3644) found +(3645) found +[1907] Forked 3646 +[1906] Forked 3647 +(3646) found +(3647) found +[1905] Forked 3648 +[1904] Forked 3649 +(3648) found +(3649) found +[1903] Forked 3650 +[1902] Forked 3651 +(3650) found +(3651) found +[1901] Forked 3652 +(3652) found +[1900] Forked 3653 +(3653) found +[1899] Forked 3654 +(3654) found +[1898] Forked 3655 +(3655) found +[1897] Forked 3656 +(3656) found +[1896] Forked 3658 +(3658) found +[1895] Forked 3659 +(3659) found +[1894] Forked 3660 +(3660) found +[1893] Forked 3661 +(3661) found +[1892] Forked 3662 +(3662) found +[1891] Forked 3663 +(3663) found +[1890] Forked 3664 +(3664) found +[1889] Forked 3665 +(3665) found +[1888] Forked 3666 +(3666) found +[1887] Forked 3667 +(3667) found +[1886] Forked 3669 +(3669) found +[1885] Forked 3670 +(3670) found +[1884] Forked 3671 +(3671) found +[1883] Forked 3672 +(3672) found +[1882] Forked 3673 +(3673) found +[1881] Forked 3674 +(3674) found +[1880] Forked 3675 +(3675) found +[1879] Forked 3676 +(3676) found +[1878] Forked 3677 +(3677) found +[1877] Forked 3678 +(3678) found +[1876] Forked 3679 +(3679) found +[1875] Forked 3680 +(3680) found +[1874] Forked 3681 +(3681) found +[1873] Forked 3682 +(3682) found +[1872] Forked 3683 +(3683) found +[1871] Forked 3684 +(3684) found +[1870] Forked 3685 +(3685) found +[1869] Forked 3686 +(3686) found +[1868] Forked 3687 +(3687) found +[1867] Forked 3688 +(3688) found +[1866] Forked 3689 +(3689) found +[1865] Forked 3690 +(3690) found +[1864] Forked 3691 +(3691) found +[1863] Forked 3692 +[1862] Forked 3693 +(3692) found +(3693) found +[1861] Forked 3694 +[1860] Forked 3695 +(3694) found +(3695) found +[1859] Forked 3696 +[1858] Forked 3697 +(3696) found +(3697) found +[1857] Forked 3698 +[1856] Forked 3699 +(3698) found +(3699) found +[1855] Forked 3700 +[1854] Forked 3701 +(3700) found +(3701) found +[1853] Forked 3702 +[1852] Forked 3703 +(3702) found +(3703) found +[1851] Forked 3704 +[1850] Forked 3705 +(3704) found +(3705) found +[1849] Forked 3706 +[1848] Forked 3707 +(3706) found +(3707) found +[1847] Forked 3708 +[1846] Forked 3709 +(3708) found +(3709) found +[1845] Forked 3710 +[1844] Forked 3711 +(3710) found +(3711) found +[1843] Forked 3712 +[1842] Forked 3713 +(3712) found +(3713) found +[1841] Forked 3714 +[1840] Forked 3715 +(3714) found +(3715) found +[1839] Forked 3716 +[1838] Forked 3717 +(3716) found +(3717) found +[1837] Forked 3718 +[1836] Forked 3719 +(3718) found +(3719) found +[1835] Forked 3720 +[1834] Forked 3721 +(3720) found +(3721) found +[1833] Forked 3722 +[1832] Forked 3723 +(3722) found +(3723) found +[1831] Forked 3724 +[1830] Forked 3725 +(3724) found +(3725) found +[1829] Forked 3726 +[1828] Forked 3727 +(3726) found +(3727) found +[1827] Forked 3728 +[1826] Forked 3729 +(3728) found +(3729) found +[1825] Forked 3730 +[1824] Forked 3731 +(3730) found +(3731) found +[1823] Forked 3732 +[1822] Forked 3733 +(3732) found +(3733) found +[1821] Forked 3734 +[1820] Forked 3735 +(3735) found +(3734) found +[1819] Forked 3736 +(3736) found +[1818] Forked 3737 +(3737) found +[1817] Forked 3738 +(3738) found +[1816] Forked 3739 +(3739) found +[1815] Forked 3740 +(3740) found +[1814] Forked 3741 +(3741) found +[1813] Forked 3742 +(3742) found +[1812] Forked 3743 +(3743) found +[1811] Forked 3744 +(3744) found +[1810] Forked 3745 +(3745) found +[1809] Forked 3746 +(3746) found +[1808] Forked 3747 +(3747) found +[1807] Forked 3748 +(3748) found +[1806] Forked 3749 +(3749) found +[1805] Forked 3750 +(3750) found +[1804] Forked 3751 +(3751) found +[1803] Forked 3752 +(3752) found +[1802] Forked 3753 +(3753) found +[1801] Forked 3754 +(3754) found +[1800] Forked 3755 +(3755) found +[1799] Forked 3756 +(3756) found +[1798] Forked 3757 +(3757) found +[1797] Forked 3758 +(3758) found +[1796] Forked 3759 +(3759) found +[1795] Forked 3760 +(3760) found +[1794] Forked 3761 +(3761) found +[1793] Forked 3762 +(3762) found +[1792] Forked 3763 +(3763) found +[1791] Forked 3764 +(3764) found +[1790] Forked 3765 +(3765) found +[1789] Forked 3766 +(3766) found +[1788] Forked 3767 +(3767) found +[1787] Forked 3768 +(3768) found +[1786] Forked 3769 +(3769) found +[1785] Forked 3770 +(3770) found +[1784] Forked 3771 +(3771) found +[1783] Forked 3772 +(3772) found +[1782] Forked 3773 +(3773) found +[1781] Forked 3774 +[1780] Forked 3775 +(3774) found +(3775) found +[1779] Forked 3776 +[1778] Forked 3777 +(3776) found +(3777) found +[1777] Forked 3778 +[1776] Forked 3779 +(3778) found +(3779) found +[1775] Forked 3780 +[1774] Forked 3781 +(3780) found +(3781) found +[1773] Forked 3782 +[1772] Forked 3783 +(3782) found +(3783) found +[1771] Forked 3784 +[1770] Forked 3785 +(3784) found +(3785) found +[1769] Forked 3786 +[1768] Forked 3787 +(3786) found +(3787) found +[1767] Forked 3788 +[1766] Forked 3789 +(3788) found +(3789) found +[1765] Forked 3790 +[1764] Forked 3791 +(3790) found +(3791) found +[1763] Forked 3792 +[1762] Forked 3793 +(3792) found +(3793) found +[1761] Forked 3794 +[1760] Forked 3795 +(3794) found +(3795) found +[1759] Forked 3796 +[1758] Forked 3797 +(3796) found +(3797) found +[1757] Forked 3798 +[1756] Forked 3799 +(3798) found +(3799) found +[1755] Forked 3800 +[1754] Forked 3801 +(3800) found +(3801) found +[1753] Forked 3802 +[1752] Forked 3803 +(3802) found +(3803) found +[1751] Forked 3804 +[1750] Forked 3805 +(3804) found +(3805) found +[1749] Forked 3806 +[1748] Forked 3807 +(3806) found +(3807) found +[1747] Forked 3808 +[1746] Forked 3809 +(3808) found +(3809) found +[1745] Forked 3810 +[1744] Forked 3811 +(3810) found +(3811) found +[1743] Forked 3812 +[1742] Forked 3814 +(3812) found +(3814) found +[1741] Forked 3815 +[1740] Forked 3816 +(3815) found +(3816) found +[1739] Forked 3817 +(3817) found +[1738] Forked 3818 +(3818) found +[1737] Forked 3819 +(3819) found +[1736] Forked 3820 +(3820) found +[1735] Forked 3821 +(3821) found +[1734] Forked 3822 +(3822) found +[1733] Forked 3823 +(3823) found +[1732] Forked 3824 +(3824) found +[1731] Forked 3825 +(3825) found +[1730] Forked 3826 +(3826) found +[1729] Forked 3827 +(3827) found +[1728] Forked 3828 +(3828) found +[1727] Forked 3829 +(3829) found +[1726] Forked 3830 +(3830) found +[1725] Forked 3831 +(3831) found +[1724] Forked 3832 +(3832) found +[1723] Forked 3833 +(3833) found +[1722] Forked 3834 +(3834) found +[1721] Forked 3835 +(3835) found +[1720] Forked 3836 +(3836) found +[1719] Forked 3837 +(3837) found +[1718] Forked 3838 +(3838) found +[1717] Forked 3839 +(3839) found +[1716] Forked 3840 +(3840) found +[1715] Forked 3841 +(3841) found +[1714] Forked 3842 +(3842) found +[1713] Forked 3843 +(3843) found +[1712] Forked 3844 +(3844) found +[1711] Forked 3845 +(3845) found +[1710] Forked 3846 +(3846) found +[1709] Forked 3847 +(3847) found +[1708] Forked 3848 +(3848) found +[1707] Forked 3849 +(3849) found +[1706] Forked 3850 +(3850) found +[1705] Forked 3851 +(3851) found +[1704] Forked 3852 +(3852) found +[1703] Forked 3853 +(3853) found +[1702] Forked 3854 +(3854) found +[1701] Forked 3855 +(3855) found +[1700] Forked 3856 +[1699] Forked 3857 +(3856) found +(3857) found +[1698] Forked 3858 +[1697] Forked 3859 +(3858) found +(3859) found +[1696] Forked 3860 +[1695] Forked 3861 +(3860) found +(3861) found +[1694] Forked 3862 +[1693] Forked 3863 +(3862) found +(3863) found +[1692] Forked 3864 +[1691] Forked 3865 +(3864) found +(3865) found +[1690] Forked 3866 +[1689] Forked 3867 +(3866) found +(3867) found +[1688] Forked 3868 +[1687] Forked 3869 +(3868) found +(3869) found +[1686] Forked 3870 +[1685] Forked 3871 +(3870) found +(3871) found +[1684] Forked 3872 +[1683] Forked 3873 +(3872) found +(3873) found +[1682] Forked 3874 +[1681] Forked 3875 +(3874) found +(3875) found +[1680] Forked 3876 +[1679] Forked 3877 +(3876) found +(3877) found +[1678] Forked 3878 +[1677] Forked 3879 +(3878) found +(3879) found +[1676] Forked 3880 +[1675] Forked 3881 +(3880) found +(3881) found +[1674] Forked 3882 +[1673] Forked 3883 +(3882) found +(3883) found +[1672] Forked 3884 +[1671] Forked 3885 +(3884) found +(3885) found +[1670] Forked 3886 +[1669] Forked 3887 +(3886) found +(3887) found +[1668] Forked 3888 +[1667] Forked 3889 +(3888) found +(3889) found +[1666] Forked 3890 +[1665] Forked 3891 +(3890) found +(3891) found +[1664] Forked 3892 +[1663] Forked 3893 +(3892) found +(3893) found +[1662] Forked 3894 +[1661] Forked 3896 +(3894) found +(3896) found +[1660] Forked 3897 +(3897) found +[1659] Forked 3898 +(3898) found +[1658] Forked 3899 +(3899) found +[1657] Forked 3900 +(3900) found +[1656] Forked 3901 +(3901) found +[1655] Forked 3902 +(3902) found +[1654] Forked 3903 +(3903) found +[1653] Forked 3904 +(3904) found +[1652] Forked 3905 +(3905) found +[1651] Forked 3906 +(3906) found +[1650] Forked 3907 +(3907) found +[1649] Forked 3908 +(3908) found +[1648] Forked 3909 +(3909) found +[1647] Forked 3910 +(3910) found +[1646] Forked 3911 +(3911) found +[1645] Forked 3912 +(3912) found +[1644] Forked 3913 +(3913) found +[1643] Forked 3914 +(3914) found +[1642] Forked 3915 +(3915) found +[1641] Forked 3916 +(3916) found +[1640] Forked 3917 +(3917) found +[1639] Forked 3919 +(3919) found +[1638] Forked 3920 +(3920) found +[1637] Forked 3921 +(3921) found +[1636] Forked 3922 +(3922) found +[1635] Forked 3923 +(3923) found +[1634] Forked 3924 +(3924) found +[1633] Forked 3925 +(3925) found +[1632] Forked 3926 +(3926) found +[1631] Forked 3927 +(3927) found +[1630] Forked 3928 +(3928) found +[1629] Forked 3929 +(3929) found +[1628] Forked 3930 +(3930) found +[1627] Forked 3931 +(3931) found +[1626] Forked 3932 +(3932) found +[1625] Forked 3933 +(3933) found +[1624] Forked 3934 +(3934) found +[1623] Forked 3935 +(3935) found +[1622] Forked 3936 +(3936) found +[1621] Forked 3937 +(3937) found +[1620] Forked 3938 +(3938) found +[1619] Forked 3939 +(3939) found +[1618] Forked 3940 +(3940) found +[1617] Forked 3941 +(3941) found +[1616] Forked 3942 +(3942) found +[1615] Forked 3943 +(3943) found +[1614] Forked 3944 +(3944) found +[1613] Forked 3945 +(3945) found +[1612] Forked 3946 +(3946) found +[1611] Forked 3947 +(3947) found +[1610] Forked 3948 +(3948) found +[1609] Forked 3949 +(3949) found +[1608] Forked 3950 +(3950) found +[1607] Forked 3951 +(3951) found +[1606] Forked 3952 +(3952) found +[1605] Forked 3953 +(3953) found +[1604] Forked 3954 +(3954) found +[1603] Forked 3955 +(3955) found +[1602] Forked 3956 +(3956) found +[1601] Forked 3957 +(3957) found +[1600] Forked 3958 +(3958) found +[1599] Forked 3959 +(3959) found +[1598] Forked 3960 +(3960) found +[1597] Forked 3961 +(3961) found +[1596] Forked 3962 +(3962) found +[1595] Forked 3963 +(3963) found +[1594] Forked 3964 +(3964) found +[1593] Forked 3965 +(3965) found +[1592] Forked 3966 +(3966) found +[1591] Forked 3967 +(3967) found +[1590] Forked 3968 +(3968) found +[1589] Forked 3969 +[1588] Forked 3970 +(3969) found +(3970) found +[1587] Forked 3971 +[1586] Forked 3972 +(3971) found +(3972) found +[1585] Forked 3973 +[1584] Forked 3974 +(3973) found +(3974) found +[1583] Forked 3975 +[1582] Forked 3976 +(3975) found +(3976) found +[1581] Forked 3977 +[1580] Forked 3978 +(3977) found +(3978) found +[1579] Forked 3979 +[1578] Forked 3980 +(3979) found +(3980) found +[1577] Forked 3981 +[1576] Forked 3982 +(3981) found +(3982) found +[1575] Forked 3983 +[1574] Forked 3984 +(3983) found +(3984) found +[1573] Forked 3985 +[1572] Forked 3986 +(3985) found +(3986) found +[1571] Forked 3987 +[1570] Forked 3988 +(3987) found +(3988) found +[1569] Forked 3989 +[1568] Forked 3990 +(3989) found +(3990) found +[1567] Forked 3991 +[1566] Forked 3992 +(3991) found +(3992) found +[1565] Forked 3993 +[1564] Forked 3994 +(3993) found +(3994) found +[1563] Forked 3995 +[1562] Forked 3996 +(3995) found +(3996) found +[1561] Forked 3997 +[1560] Forked 3998 +(3997) found +(3998) found +[1559] Forked 3999 +[1558] Forked 4000 +(3999) found +(4000) found +[1557] Forked 4001 +[1556] Forked 4002 +(4001) found +(4002) found +[1555] Forked 4003 +[1554] Forked 4004 +(4003) found +(4004) found +[1553] Forked 4005 +[1552] Forked 4006 +(4005) found +(4006) found +[1551] Forked 4007 +[1550] Forked 4008 +(4007) found +(4008) found +[1549] Forked 4009 +[1548] Forked 4010 +(4009) found +(4010) found +[1547] Forked 4011 +[1546] Forked 4012 +(4011) found +(4012) found +[1545] Forked 4013 +[1544] Forked 4015 +(4013) found +(4015) found +[1543] Forked 4016 +(4016) found +[1542] Forked 4017 +(4017) found +[1541] Forked 4018 +(4018) found +[1540] Forked 4019 +(4019) found +[1539] Forked 4020 +(4020) found +[1538] Forked 4021 +(4021) found +[1537] Forked 4022 +(4022) found +[1536] Forked 4023 +(4023) found +[1535] Forked 4024 +(4024) found +[1534] Forked 4025 +(4025) found +[1533] Forked 4026 +(4026) found +[1532] Forked 4028 +(4028) found +[1531] Forked 4029 +(4029) found +[1530] Forked 4030 +(4030) found +[1529] Forked 4031 +(4031) found +[1528] Forked 4032 +(4032) found +[1527] Forked 4034 +(4034) found +[1526] Forked 4035 +(4035) found +[1525] Forked 4036 +(4036) found +[1524] Forked 4037 +(4037) found +[1523] Forked 4038 +(4038) found +[1522] Forked 4039 +(4039) found +[1521] Forked 4040 +(4040) found +[1520] Forked 4041 +(4041) found +[1519] Forked 4042 +(4042) found +[1518] Forked 4043 +(4043) found +[1517] Forked 4044 +(4044) found +[1516] Forked 4045 +(4045) found +[1515] Forked 4046 +(4046) found +[1514] Forked 4047 +(4047) found +[1513] Forked 4048 +(4048) found +[1512] Forked 4049 +(4049) found +[1511] Forked 4052 +(4052) found +[1510] Forked 4053 +(4053) found +[1509] Forked 4054 +(4054) found +[1508] Forked 4055 +(4055) found +[1507] Forked 4056 +[1506] Forked 4057 +(4056) found +(4057) found +[1505] Forked 4058 +[1504] Forked 4059 +(4058) found +(4059) found +[1503] Forked 4060 +[1502] Forked 4061 +(4060) found +(4061) found +[1501] Forked 4062 +[1500] Forked 4063 +(4062) found +(4063) found +[1499] Forked 4064 +[1498] Forked 4065 +(4064) found +(4065) found +[1497] Forked 4066 +[1496] Forked 4067 +(4066) found +(4067) found +[1495] Forked 4068 +[1494] Forked 4069 +(4068) found +(4069) found +[1493] Forked 4070 +[1492] Forked 4071 +(4070) found +(4071) found +[1491] Forked 4072 +[1490] Forked 4074 +(4072) found +(4074) found +[1489] Forked 4075 +[1488] Forked 4076 +(4075) found +(4076) found +[1487] Forked 4077 +[1486] Forked 4078 +(4077) found +(4078) found +[1485] Forked 4079 +[1484] Forked 4080 +(4079) found +(4080) found +[1483] Forked 4081 +[1482] Forked 4082 +(4081) found +(4082) found +[1481] Forked 4083 +[1480] Forked 4086 +(4083) found +(4086) found +[1479] Forked 4088 +[1478] Forked 4089 +(4088) found +(4089) found +[1477] Forked 4090 +[1476] Forked 4093 +(4090) found +(4093) found +[1475] Forked 4095 +[1474] Forked 4096 +(4095) found +(4096) found +[1473] Forked 4097 +[1472] Forked 4098 +(4097) found +(4098) found +[1471] Forked 4099 +[1470] Forked 4100 +(4099) found +(4100) found +[1469] Forked 4101 +[1468] Forked 4102 +(4101) found +(4102) found +[1467] Forked 4103 +[1466] Forked 4104 +(4103) found +(4104) found +[1465] Forked 4105 +[1464] Forked 4106 +(4105) found +(4106) found +[1463] Forked 4107 +[1462] Forked 4108 +(4107) found +(4108) found +[1461] Forked 4109 +[1460] Forked 4110 +(4109) found +(4110) found +[1459] Forked 4111 +[1458] Forked 4112 +(4111) found +(4112) found +[1457] Forked 4113 +[1456] Forked 4114 +(4113) found +(4114) found +[1455] Forked 4115 +[1454] Forked 4116 +(4115) found +(4116) found +[1453] Forked 4117 +[1452] Forked 4118 +(4117) found +(4118) found +[1451] Forked 4119 +[1450] Forked 4120 +(4119) found +(4120) found +[1449] Forked 4121 +[1448] Forked 4122 +(4121) found +(4122) found +[1447] Forked 4123 +[1446] Forked 4124 +(4123) found +(4124) found +[1445] Forked 4125 +[1444] Forked 4126 +(4125) found +(4126) found +[1443] Forked 4127 +[1442] Forked 4128 +(4127) found +(4128) found +[1441] Forked 4129 +[1440] Forked 4130 +(4129) found +(4130) found +[1439] Forked 4131 +[1438] Forked 4132 +(4131) found +(4132) found +[1437] Forked 4133 +[1436] Forked 4134 +(4133) found +(4134) found +[1435] Forked 4135 +[1434] Forked 4136 +(4135) found +(4136) found +[1433] Forked 4137 +[1432] Forked 4138 +(4137) found +(4138) found +[1431] Forked 4139 +[1430] Forked 4140 +(4139) found +(4140) found +[1429] Forked 4141 +[1428] Forked 4142 +(4141) found +(4142) found +[1427] Forked 4143 +[1426] Forked 4144 +(4143) found +(4144) found +[1425] Forked 4145 +[1424] Forked 4146 +(4145) found +(4146) found +[1423] Forked 4147 +[1422] Forked 4148 +(4147) found +(4148) found +[1421] Forked 4149 +[1420] Forked 4150 +(4149) found +(4150) found +[1419] Forked 4151 +[1418] Forked 4152 +(4151) found +(4152) found +[1417] Forked 4153 +(4153) found +[1416] Forked 4154 +(4154) found +[1415] Forked 4155 +(4155) found +[1414] Forked 4156 +(4156) found +[1413] Forked 4157 +(4157) found +[1412] Forked 4158 +(4158) found +[1411] Forked 4159 +(4159) found +[1410] Forked 4160 +(4160) found +[1409] Forked 4161 +(4161) found +[1408] Forked 4162 +(4162) found +[1407] Forked 4163 +(4163) found +[1406] Forked 4164 +(4164) found +[1405] Forked 4165 +(4165) found +[1404] Forked 4166 +(4166) found +[1403] Forked 4167 +(4167) found +[1402] Forked 4168 +(4168) found +[1401] Forked 4169 +(4169) found +[1400] Forked 4170 +(4170) found +[1399] Forked 4171 +(4171) found +[1398] Forked 4172 +(4172) found +[1397] Forked 4173 +(4173) found +[1396] Forked 4174 +(4174) found +[1395] Forked 4175 +(4175) found +[1394] Forked 4176 +(4176) found +[1393] Forked 4177 +(4177) found +[1392] Forked 4178 +(4178) found +[1391] Forked 4179 +(4179) found +[1390] Forked 4180 +(4180) found +[1389] Forked 4181 +(4181) found +[1388] Forked 4182 +(4182) found +[1387] Forked 4183 +(4183) found +[1386] Forked 4184 +(4184) found +[1385] Forked 4185 +(4185) found +[1384] Forked 4186 +(4186) found +[1383] Forked 4187 +(4187) found +[1382] Forked 4188 +(4188) found +[1381] Forked 4189 +(4189) found +[1380] Forked 4190 +(4190) found +[1379] Forked 4191 +[1378] Forked 4192 +(4191) found +(4192) found +[1377] Forked 4193 +[1376] Forked 4194 +(4193) found +(4194) found +[1375] Forked 4195 +[1374] Forked 4196 +(4195) found +(4196) found +[1373] Forked 4197 +[1372] Forked 4198 +(4197) found +(4198) found +[1371] Forked 4199 +[1370] Forked 4200 +(4199) found +(4200) found +[1369] Forked 4201 +[1368] Forked 4202 +(4201) found +(4202) found +[1367] Forked 4203 +[1366] Forked 4204 +(4203) found +(4204) found +[1365] Forked 4205 +[1364] Forked 4206 +(4205) found +(4206) found +[1363] Forked 4207 +[1362] Forked 4208 +(4207) found +(4208) found +[1361] Forked 4209 +[1360] Forked 4210 +(4209) found +(4210) found +[1359] Forked 4211 +[1358] Forked 4212 +(4211) found +(4212) found +[1357] Forked 4213 +[1356] Forked 4214 +(4213) found +(4214) found +[1355] Forked 4215 +[1354] Forked 4216 +(4215) found +(4216) found +[1353] Forked 4217 +[1352] Forked 4218 +(4217) found +(4218) found +[1351] Forked 4219 +[1350] Forked 4220 +(4219) found +(4220) found +[1349] Forked 4221 +[1348] Forked 4222 +(4221) found +(4222) found +[1347] Forked 4223 +[1346] Forked 4224 +(4223) found +(4224) found +[1345] Forked 4225 +[1344] Forked 4226 +(4225) found +(4226) found +[1343] Forked 4227 +[1342] Forked 4228 +(4227) found +(4228) found +[1341] Forked 4229 +(4229) found +[1340] Forked 4230 +[1339] Forked 4231 +(4230) found +(4231) found +[1338] Forked 4232 +[1337] Forked 4233 +(4232) found +(4233) found +[1336] Forked 4234 +(4234) found +[1335] Forked 4235 +(4235) found +[1334] Forked 4236 +(4236) found +[1333] Forked 4237 +(4237) found +[1332] Forked 4238 +(4238) found +[1331] Forked 4239 +(4239) found +[1330] Forked 4240 +(4240) found +[1329] Forked 4242 +(4242) found +[1328] Forked 4243 +(4243) found +[1327] Forked 4244 +(4244) found +[1326] Forked 4245 +(4245) found +[1325] Forked 4247 +(4247) found +[1324] Forked 4248 +(4248) found +[1323] Forked 4249 +(4249) found +[1322] Forked 4250 +(4250) found +[1321] Forked 4251 +(4251) found +[1320] Forked 4252 +(4252) found +[1319] Forked 4254 +(4254) found +[1318] Forked 4255 +(4255) found +[1317] Forked 4256 +(4256) found +[1316] Forked 4257 +(4257) found +[1315] Forked 4258 +(4258) found +[1314] Forked 4259 +(4259) found +[1313] Forked 4260 +(4260) found +[1312] Forked 4261 +(4261) found +[1311] Forked 4262 +(4262) found +[1310] Forked 4263 +(4263) found +[1309] Forked 4264 +(4264) found +[1308] Forked 4265 +(4265) found +[1307] Forked 4266 +(4266) found +[1306] Forked 4267 +(4267) found +[1305] Forked 4268 +(4268) found +[1304] Forked 4269 +(4269) found +[1303] Forked 4270 +(4270) found +[1302] Forked 4271 +(4271) found +[1301] Forked 4272 +(4272) found +[1300] Forked 4273 +(4273) found +[1299] Forked 4274 +(4274) found +[1298] Forked 4275 +(4275) found +[1297] Forked 4276 +[1296] Forked 4277 +(4276) found +(4277) found +[1295] Forked 4278 +[1294] Forked 4279 +(4278) found +(4279) found +[1293] Forked 4280 +[1292] Forked 4281 +(4280) found +(4281) found +[1291] Forked 4282 +[1290] Forked 4284 +(4282) found +(4284) found +[1289] Forked 4285 +[1288] Forked 4286 +(4285) found +(4286) found +[1287] Forked 4287 +[1286] Forked 4288 +(4287) found +(4288) found +[1285] Forked 4289 +[1284] Forked 4290 +(4290) found +(4289) found +[1283] Forked 4291 +(4291) found +[1282] Forked 4292 +(4292) found +[1281] Forked 4293 +(4293) found +[1280] Forked 4294 +(4294) found +[1279] Forked 4295 +(4295) found +[1278] Forked 4296 +(4296) found +[1277] Forked 4297 +(4297) found +[1276] Forked 4298 +(4298) found +[1275] Forked 4299 +(4299) found +[1274] Forked 4300 +(4300) found +[1273] Forked 4301 +(4301) found +[1272] Forked 4302 +(4302) found +[1271] Forked 4303 +(4303) found +[1270] Forked 4304 +(4304) found +[1269] Forked 4305 +(4305) found +[1268] Forked 4306 +(4306) found +[1267] Forked 4307 +(4307) found +[1266] Forked 4308 +(4308) found +[1265] Forked 4309 +(4309) found +[1264] Forked 4310 +(4310) found +[1263] Forked 4311 +(4311) found +[1262] Forked 4312 +(4312) found +[1261] Forked 4313 +(4313) found +[1260] Forked 4314 +(4314) found +[1259] Forked 4315 +(4315) found +[1258] Forked 4316 +(4316) found +[1257] Forked 4317 +(4317) found +[1256] Forked 4318 +(4318) found +[1255] Forked 4319 +(4319) found +[1254] Forked 4320 +(4320) found +[1253] Forked 4321 +(4321) found +[1252] Forked 4322 +(4322) found +[1251] Forked 4323 +(4323) found +[1250] Forked 4324 +(4324) found +[1249] Forked 4325 +(4325) found +[1248] Forked 4326 +(4326) found +[1247] Forked 4327 +(4327) found +[1246] Forked 4328 +(4328) found +[1245] Forked 4329 +(4329) found +[1244] Forked 4330 +(4330) found +[1243] Forked 4331 +(4331) found +[1242] Forked 4332 +(4332) found +[1241] Forked 4333 +(4333) found +[1240] Forked 4334 +(4334) found +[1239] Forked 4335 +(4335) found +[1238] Forked 4336 +(4336) found +[1237] Forked 4337 +(4337) found +[1236] Forked 4338 +(4338) found +[1235] Forked 4339 +(4339) found +[1234] Forked 4340 +(4340) found +[1233] Forked 4341 +(4341) found +[1232] Forked 4342 +(4342) found +[1231] Forked 4343 +(4343) found +[1230] Forked 4344 +(4344) found +[1229] Forked 4345 +(4345) found +[1228] Forked 4346 +(4346) found +[1227] Forked 4347 +(4347) found +[1226] Forked 4348 +(4348) found +[1225] Forked 4349 +[1224] Forked 4350 +(4349) found +(4350) found +[1223] Forked 4351 +[1222] Forked 4352 +(4351) found +(4352) found +[1221] Forked 4353 +[1220] Forked 4354 +(4353) found +(4354) found +[1219] Forked 4355 +[1218] Forked 4356 +(4355) found +(4356) found +[1217] Forked 4357 +[1216] Forked 4358 +(4357) found +(4358) found +[1215] Forked 4359 +[1214] Forked 4360 +(4359) found +(4360) found +[1213] Forked 4361 +[1212] Forked 4362 +(4361) found +(4362) found +[1211] Forked 4363 +[1210] Forked 4364 +(4363) found +(4364) found +[1209] Forked 4365 +[1208] Forked 4366 +(4365) found +(4366) found +[1207] Forked 4367 +[1206] Forked 4368 +(4367) found +(4368) found +[1205] Forked 4369 +[1204] Forked 4370 +(4369) found +(4370) found +[1203] Forked 4371 +[1202] Forked 4372 +(4371) found +(4372) found +[1201] Forked 4373 +[1200] Forked 4374 +(4373) found +(4374) found +[1199] Forked 4375 +[1198] Forked 4376 +(4375) found +(4376) found +[1197] Forked 4377 +[1196] Forked 4378 +(4377) found +(4378) found +[1195] Forked 4379 +[1194] Forked 4380 +(4379) found +(4380) found +[1193] Forked 4381 +[1192] Forked 4382 +(4381) found +(4382) found +[1191] Forked 4383 +[1190] Forked 4384 +(4383) found +(4384) found +[1189] Forked 4385 +[1188] Forked 4386 +(4385) found +(4386) found +[1187] Forked 4387 +[1186] Forked 4388 +(4387) found +(4388) found +[1185] Forked 4389 +[1184] Forked 4390 +(4389) found +(4390) found +[1183] Forked 4391 +[1182] Forked 4392 +(4391) found +(4392) found +[1181] Forked 4393 +(4393) found +[1180] Forked 4394 +(4394) found +[1179] Forked 4395 +(4395) found +[1178] Forked 4396 +(4396) found +[1177] Forked 4397 +(4397) found +[1176] Forked 4398 +(4398) found +[1175] Forked 4399 +(4399) found +[1174] Forked 4400 +(4400) found +[1173] Forked 4401 +(4401) found +[1172] Forked 4402 +(4402) found +[1171] Forked 4403 +(4403) found +[1170] Forked 4404 +(4404) found +[1169] Forked 4405 +(4405) found +[1168] Forked 4406 +(4406) found +[1167] Forked 4407 +(4407) found +[1166] Forked 4408 +(4408) found +[1165] Forked 4409 +(4409) found +[1164] Forked 4410 +(4410) found +[1163] Forked 4411 +(4411) found +[1162] Forked 4412 +(4412) found +[1161] Forked 4413 +(4413) found +[1160] Forked 4414 +(4414) found +[1159] Forked 4415 +(4415) found +[1158] Forked 4416 +(4416) found +[1157] Forked 4417 +(4417) found +[1156] Forked 4418 +(4418) found +[1155] Forked 4419 +(4419) found +[1154] Forked 4420 +(4420) found +[1153] Forked 4421 +(4421) found +[1152] Forked 4422 +(4422) found +[1151] Forked 4423 +(4423) found +[1150] Forked 4424 +(4424) found +[1149] Forked 4425 +(4425) found +[1148] Forked 4426 +(4426) found +[1147] Forked 4427 +(4427) found +[1146] Forked 4428 +(4428) found +[1145] Forked 4429 +(4429) found +[1144] Forked 4430 +(4430) found +[1143] Forked 4431 +[1142] Forked 4432 +(4431) found +(4432) found +[1141] Forked 4433 +[1140] Forked 4434 +(4433) found +(4434) found +[1139] Forked 4435 +[1138] Forked 4436 +(4435) found +(4436) found +[1137] Forked 4437 +[1136] Forked 4438 +(4437) found +(4438) found +[1135] Forked 4439 +[1134] Forked 4440 +(4439) found +(4440) found +[1133] Forked 4441 +[1132] Forked 4442 +(4441) found +(4442) found +[1131] Forked 4443 +[1130] Forked 4444 +(4443) found +(4444) found +[1129] Forked 4445 +[1128] Forked 4446 +(4445) found +(4446) found +[1127] Forked 4447 +[1126] Forked 4448 +(4447) found +(4448) found +[1125] Forked 4449 +[1124] Forked 4450 +(4449) found +(4450) found +[1123] Forked 4451 +[1122] Forked 4452 +(4451) found +(4452) found +[1121] Forked 4453 +[1120] Forked 4454 +(4453) found +(4454) found +[1119] Forked 4455 +[1118] Forked 4456 +(4455) found +(4456) found +[1117] Forked 4457 +[1116] Forked 4458 +(4457) found +(4458) found +[1115] Forked 4459 +[1114] Forked 4460 +(4459) found +(4460) found +[1113] Forked 4461 +[1112] Forked 4462 +(4461) found +(4462) found +[1111] Forked 4463 +[1110] Forked 4464 +(4463) found +(4464) found +[1109] Forked 4465 +[1108] Forked 4466 +(4465) found +(4466) found +[1107] Forked 4467 +[1106] Forked 4468 +(4467) found +(4468) found +[1105] Forked 4469 +[1104] Forked 4470 +(4469) found +(4470) found +[1103] Forked 4471 +[1102] Forked 4472 +(4471) found +(4472) found +[1101] Forked 4473 +[1100] Forked 4474 +(4473) found +(4474) found +[1099] Forked 4475 +(4475) found +[1098] Forked 4476 +(4476) found +[1097] Forked 4477 +(4477) found +[1096] Forked 4478 +(4478) found +[1095] Forked 4479 +(4479) found +[1094] Forked 4480 +(4480) found +[1093] Forked 4481 +(4481) found +[1092] Forked 4482 +(4482) found +[1091] Forked 4483 +(4483) found +[1090] Forked 4484 +(4484) found +[1089] Forked 4485 +(4485) found +[1088] Forked 4486 +(4486) found +[1087] Forked 4487 +(4487) found +[1086] Forked 4488 +(4488) found +[1085] Forked 4489 +(4489) found +[1084] Forked 4490 +(4490) found +[1083] Forked 4491 +(4491) found +[1082] Forked 4492 +(4492) found +[1081] Forked 4493 +(4493) found +[1080] Forked 4494 +(4494) found +[1079] Forked 4495 +(4495) found +[1078] Forked 4496 +(4496) found +[1077] Forked 4497 +(4497) found +[1076] Forked 4498 +(4498) found +[1075] Forked 4499 +(4499) found +[1074] Forked 4500 +(4500) found +[1073] Forked 4501 +(4501) found +[1072] Forked 4502 +(4502) found +[1071] Forked 4503 +(4503) found +[1070] Forked 4504 +(4504) found +[1069] Forked 4505 +(4505) found +[1068] Forked 4506 +(4506) found +[1067] Forked 4507 +(4507) found +[1066] Forked 4508 +(4508) found +[1065] Forked 4509 +(4509) found +[1064] Forked 4510 +(4510) found +[1063] Forked 4511 +(4511) found +[1062] Forked 4512 +(4512) found +[1061] Forked 4513 +(4513) found +[1060] Forked 4514 +[1059] Forked 4515 +(4514) found +(4515) found +[1058] Forked 4516 +[1057] Forked 4517 +(4516) found +(4517) found +[1056] Forked 4518 +[1055] Forked 4519 +(4518) found +(4519) found +[1054] Forked 4520 +[1053] Forked 4521 +(4520) found +(4521) found +[1052] Forked 4522 +[1051] Forked 4523 +(4522) found +(4523) found +[1050] Forked 4524 +[1049] Forked 4525 +(4524) found +(4525) found +[1048] Forked 4526 +[1047] Forked 4527 +(4526) found +(4527) found +[1046] Forked 4528 +[1045] Forked 4529 +(4528) found +(4529) found +[1044] Forked 4530 +[1043] Forked 4531 +(4530) found +(4531) found +[1042] Forked 4532 +[1041] Forked 4533 +(4532) found +(4533) found +[1040] Forked 4534 +(4534) found +[1039] Forked 4535 +(4535) found +[1038] Forked 4536 +[1037] Forked 4537 +(4536) found +(4537) found +[1036] Forked 4538 +[1035] Forked 4539 +(4538) found +(4539) found +[1034] Forked 4540 +[1033] Forked 4541 +(4540) found +(4541) found +[1032] Forked 4542 +[1031] Forked 4543 +(4542) found +(4543) found +[1030] Forked 4544 +[1029] Forked 4545 +(4544) found +(4545) found +[1028] Forked 4546 +[1027] Forked 4547 +(4546) found +(4547) found +[1026] Forked 4548 +[1025] Forked 4549 +(4548) found +(4549) found +[1024] Forked 4550 +[1023] Forked 4551 +(4550) found +(4551) found +[1022] Forked 4552 +[1021] Forked 4553 +(4552) found +(4553) found +[1020] Forked 4554 +[1019] Forked 4555 +(4554) found +(4555) found +[1018] Forked 4556 +(4556) found +[1017] Forked 4557 +(4557) found +[1016] Forked 4558 +(4558) found +[1015] Forked 4559 +(4559) found +[1014] Forked 4560 +(4560) found +[1013] Forked 4561 +(4561) found +[1012] Forked 4562 +(4562) found +[1011] Forked 4563 +(4563) found +[1010] Forked 4564 +(4564) found +[1009] Forked 4565 +(4565) found +[1008] Forked 4566 +(4566) found +[1007] Forked 4567 +(4567) found +[1006] Forked 4568 +(4568) found +[1005] Forked 4569 +(4569) found +[1004] Forked 4570 +(4570) found +[1003] Forked 4571 +(4571) found +[1002] Forked 4572 +(4572) found +[1001] Forked 4573 +(4573) found +[1000] Forked 4574 +(4574) found +[999] Forked 4575 +(4575) found +[998] Forked 4576 +(4576) found +[997] Forked 4577 +(4577) found +[996] Forked 4578 +(4578) found +[995] Forked 4579 +(4579) found +[994] Forked 4580 +(4580) found +[993] Forked 4581 +(4581) found +[992] Forked 4582 +(4582) found +[991] Forked 4583 +(4583) found +[990] Forked 4584 +(4584) found +[989] Forked 4585 +(4585) found +[988] Forked 4586 +(4586) found +[987] Forked 4587 +(4587) found +[986] Forked 4588 +(4588) found +[985] Forked 4589 +(4589) found +[984] Forked 4590 +(4590) found +[983] Forked 4591 +(4591) found +[982] Forked 4593 +(4593) found +[981] Forked 4594 +(4594) found +[980] Forked 4595 +(4595) found +[979] Forked 4596 +[978] Forked 4597 +(4596) found +(4597) found +[977] Forked 4598 +[976] Forked 4599 +(4598) found +(4599) found +[975] Forked 4600 +[974] Forked 4601 +(4600) found +(4601) found +[973] Forked 4602 +[972] Forked 4603 +(4602) found +(4603) found +[971] Forked 4604 +[970] Forked 4605 +(4604) found +(4605) found +[969] Forked 4606 +[968] Forked 4607 +(4606) found +(4607) found +[967] Forked 4608 +[966] Forked 4609 +(4608) found +(4609) found +[965] Forked 4610 +[964] Forked 4611 +(4610) found +(4611) found +[963] Forked 4612 +[962] Forked 4613 +(4612) found +(4613) found +[961] Forked 4614 +[960] Forked 4615 +(4614) found +(4615) found +[959] Forked 4616 +[958] Forked 4617 +(4616) found +(4617) found +[957] Forked 4618 +[956] Forked 4619 +(4618) found +(4619) found +[955] Forked 4620 +[954] Forked 4621 +(4620) found +(4621) found +[953] Forked 4622 +[952] Forked 4623 +(4623) found +(4622) found +[951] Forked 4624 +(4624) found +[950] Forked 4625 +(4625) found +[949] Forked 4626 +(4626) found +[948] Forked 4627 +(4627) found +[947] Forked 4628 +(4628) found +[946] Forked 4629 +(4629) found +[945] Forked 4630 +(4630) found +[944] Forked 4631 +(4631) found +[943] Forked 4632 +(4632) found +[942] Forked 4633 +[941] Forked 4634 +(4633) found +(4634) found +[940] Forked 4635 +[939] Forked 4636 +(4636) found +(4635) found +[938] Forked 4637 +(4637) found +[937] Forked 4638 +(4638) found +[936] Forked 4639 +(4639) found +[935] Forked 4640 +(4640) found +[934] Forked 4641 +(4641) found +[933] Forked 4642 +(4642) found +[932] Forked 4643 +(4643) found +[931] Forked 4644 +(4644) found +[930] Forked 4645 +(4645) found +[929] Forked 4646 +(4646) found +[928] Forked 4647 +(4647) found +[927] Forked 4648 +(4648) found +[926] Forked 4649 +(4649) found +[925] Forked 4650 +(4650) found +[924] Forked 4651 +(4651) found +[923] Forked 4652 +(4652) found +[922] Forked 4653 +(4653) found +[921] Forked 4654 +(4654) found +[920] Forked 4655 +(4655) found +[919] Forked 4656 +(4656) found +[918] Forked 4657 +(4657) found +[917] Forked 4658 +(4658) found +[916] Forked 4659 +(4659) found +[915] Forked 4660 +(4660) found +[914] Forked 4661 +(4661) found +[913] Forked 4662 +(4662) found +[912] Forked 4663 +(4663) found +[911] Forked 4664 +(4664) found +[910] Forked 4665 +(4665) found +[909] Forked 4666 +(4666) found +[908] Forked 4667 +(4667) found +[907] Forked 4668 +(4668) found +[906] Forked 4669 +(4669) found +[905] Forked 4670 +(4670) found +[904] Forked 4671 +(4671) found +[903] Forked 4672 +(4672) found +[902] Forked 4673 +(4673) found +[901] Forked 4674 +[900] Forked 4675 +(4674) found +(4675) found +[899] Forked 4676 +[898] Forked 4677 +(4676) found +(4677) found +[897] Forked 4678 +[896] Forked 4679 +(4678) found +(4679) found +[895] Forked 4680 +[894] Forked 4681 +(4680) found +(4681) found +[893] Forked 4682 +[892] Forked 4683 +(4682) found +(4683) found +[891] Forked 4684 +[890] Forked 4685 +(4684) found +(4685) found +[889] Forked 4686 +[888] Forked 4687 +(4686) found +(4687) found +[887] Forked 4688 +[886] Forked 4689 +(4688) found +(4689) found +[885] Forked 4690 +[884] Forked 4691 +(4690) found +(4691) found +[883] Forked 4692 +[882] Forked 4693 +(4692) found +(4693) found +[881] Forked 4694 +[880] Forked 4695 +(4694) found +(4695) found +[879] Forked 4696 +[878] Forked 4697 +(4696) found +(4697) found +[877] Forked 4698 +[876] Forked 4699 +(4698) found +(4699) found +[875] Forked 4700 +[874] Forked 4701 +(4700) found +(4701) found +[873] Forked 4702 +[872] Forked 4703 +(4702) found +(4703) found +[871] Forked 4704 +[870] Forked 4705 +(4704) found +(4705) found +[869] Forked 4706 +[868] Forked 4707 +(4706) found +(4707) found +[867] Forked 4708 +[866] Forked 4709 +(4708) found +(4709) found +[865] Forked 4710 +[864] Forked 4711 +(4710) found +(4711) found +[863] Forked 4712 +[862] Forked 4713 +(4712) found +(4713) found +[861] Forked 4714 +[860] Forked 4715 +(4714) found +(4715) found +[859] Forked 4716 +[858] Forked 4717 +(4716) found +(4717) found +[857] Forked 4718 +(4718) found +[856] Forked 4719 +(4719) found +[855] Forked 4720 +(4720) found +[854] Forked 4721 +(4721) found +[853] Forked 4722 +(4722) found +[852] Forked 4723 +(4723) found +[851] Forked 4724 +(4724) found +[850] Forked 4725 +(4725) found +[849] Forked 4726 +(4726) found +[848] Forked 4727 +(4727) found +[847] Forked 4728 +(4728) found +[846] Forked 4729 +(4729) found +[845] Forked 4730 +(4730) found +[844] Forked 4731 +(4731) found +[843] Forked 4732 +(4732) found +[842] Forked 4733 +(4733) found +[841] Forked 4734 +(4734) found +[840] Forked 4735 +(4735) found +[839] Forked 4736 +(4736) found +[838] Forked 4737 +(4737) found +[837] Forked 4738 +(4738) found +[836] Forked 4739 +(4739) found +[835] Forked 4740 +(4740) found +[834] Forked 4741 +(4741) found +[833] Forked 4742 +(4742) found +[832] Forked 4743 +(4743) found +[831] Forked 4744 +(4744) found +[830] Forked 4745 +(4745) found +[829] Forked 4746 +(4746) found +[828] Forked 4747 +(4747) found +[827] Forked 4748 +(4748) found +[826] Forked 4749 +(4749) found +[825] Forked 4750 +(4750) found +[824] Forked 4751 +(4751) found +[823] Forked 4752 +(4752) found +[822] Forked 4753 +(4753) found +[821] Forked 4754 +(4754) found +[820] Forked 4755 +(4755) found +[819] Forked 4756 +(4756) found +[818] Forked 4757 +(4757) found +[817] Forked 4758 +[816] Forked 4759 +(4758) found +(4759) found +[815] Forked 4760 +[814] Forked 4761 +(4760) found +(4761) found +[813] Forked 4762 +[812] Forked 4763 +(4762) found +(4763) found +[811] Forked 4764 +[810] Forked 4765 +(4764) found +(4765) found +[809] Forked 4766 +[808] Forked 4767 +(4766) found +(4767) found +[807] Forked 4768 +[806] Forked 4769 +(4768) found +(4769) found +[805] Forked 4770 +[804] Forked 4771 +(4770) found +(4771) found +[803] Forked 4772 +[802] Forked 4773 +(4772) found +(4773) found +[801] Forked 4774 +[800] Forked 4775 +(4774) found +(4775) found +[799] Forked 4776 +[798] Forked 4777 +(4776) found +(4777) found +[797] Forked 4778 +[796] Forked 4779 +(4778) found +(4779) found +[795] Forked 4780 +[794] Forked 4781 +(4780) found +(4781) found +[793] Forked 4782 +[792] Forked 4783 +(4782) found +(4783) found +[791] Forked 4784 +[790] Forked 4785 +(4784) found +(4785) found +[789] Forked 4786 +[788] Forked 4787 +(4786) found +(4787) found +[787] Forked 4788 +[786] Forked 4789 +(4788) found +(4789) found +[785] Forked 4790 +[784] Forked 4791 +(4790) found +(4791) found +[783] Forked 4792 +[782] Forked 4793 +(4792) found +(4793) found +[781] Forked 4794 +[780] Forked 4795 +(4794) found +(4795) found +[779] Forked 4796 +[778] Forked 4797 +(4796) found +(4797) found +[777] Forked 4798 +[776] Forked 4799 +(4798) found +(4799) found +[775] Forked 4800 +[774] Forked 4801 +[773] Forked 4802 +[772] Forked 4803 +[771] Forked 4804 +[770] Forked 4805 +[769] Forked 4806 +[768] Forked 4807 +[767] Forked 4809 +(4800) found +(4801) found +(4802) found +(4803) found +(4804) found +(4805) found +(4806) found +(4807) found +(4809) found +[766] Forked 4810 +(4810) found +[765] Forked 4811 +(4811) found +[764] Forked 4812 +(4812) found +[763] Forked 4813 +(4813) found +[762] Forked 4814 +(4814) found +[761] Forked 4815 +(4815) found +[760] Forked 4816 +(4816) found +[759] Forked 4817 +(4817) found +[758] Forked 4818 +(4818) found +[757] Forked 4819 +(4819) found +[756] Forked 4820 +(4820) found +[755] Forked 4821 +(4821) found +[754] Forked 4822 +(4822) found +[753] Forked 4823 +(4823) found +[752] Forked 4824 +(4824) found +[751] Forked 4825 +(4825) found +[750] Forked 4826 +(4826) found +[749] Forked 4827 +(4827) found +[748] Forked 4828 +(4828) found +[747] Forked 4829 +(4829) found +[746] Forked 4830 +(4830) found +[745] Forked 4831 +(4831) found +[744] Forked 4832 +(4832) found +[743] Forked 4833 +(4833) found +[742] Forked 4834 +(4834) found +[741] Forked 4835 +(4835) found +[740] Forked 4836 +(4836) found +[739] Forked 4837 +(4837) found +[738] Forked 4838 +(4838) found +[737] Forked 4839 +(4839) found +[736] Forked 4840 +(4840) found +[735] Forked 4841 +(4841) found +[734] Forked 4842 +[733] Forked 4843 +(4842) found +(4843) found +[732] Forked 4844 +[731] Forked 4845 +(4844) found +(4845) found +[730] Forked 4846 +[729] Forked 4847 +(4846) found +(4847) found +[728] Forked 4848 +[727] Forked 4849 +(4848) found +(4849) found +[726] Forked 4850 +[725] Forked 4851 +(4850) found +(4851) found +[724] Forked 4852 +[723] Forked 4853 +(4852) found +(4853) found +[722] Forked 4854 +[721] Forked 4855 +(4854) found +(4855) found +[720] Forked 4856 +[719] Forked 4857 +(4856) found +(4857) found +[718] Forked 4858 +[717] Forked 4859 +(4858) found +(4859) found +[716] Forked 4860 +[715] Forked 4861 +(4860) found +(4861) found +[714] Forked 4862 +[713] Forked 4863 +(4862) found +(4863) found +[712] Forked 4864 +[711] Forked 4865 +(4864) found +(4865) found +[710] Forked 4866 +[709] Forked 4867 +(4866) found +(4867) found +[708] Forked 4868 +[707] Forked 4869 +(4868) found +(4869) found +[706] Forked 4870 +[705] Forked 4871 +(4870) found +(4871) found +[704] Forked 4872 +[703] Forked 4873 +(4872) found +(4873) found +[702] Forked 4874 +[701] Forked 4875 +(4874) found +(4875) found +[700] Forked 4876 +(4876) found +[699] Forked 4877 +[698] Forked 4878 +(4877) found +(4878) found +[697] Forked 4879 +[696] Forked 4881 +(4879) found +(4881) found +[695] Forked 4882 +(4882) found +[694] Forked 4883 +(4883) found +[693] Forked 4884 +(4884) found +[692] Forked 4885 +(4885) found +[691] Forked 4886 +(4886) found +[690] Forked 4887 +(4887) found +[689] Forked 4888 +(4888) found +[688] Forked 4889 +(4889) found +[687] Forked 4890 +(4890) found +[686] Forked 4891 +(4891) found +[685] Forked 4892 +(4892) found +[684] Forked 4893 +(4893) found +[683] Forked 4894 +(4894) found +[682] Forked 4895 +(4895) found +[681] Forked 4896 +(4896) found +[680] Forked 4897 +(4897) found +[679] Forked 4898 +(4898) found +[678] Forked 4899 +(4899) found +[677] Forked 4900 +(4900) found +[676] Forked 4901 +(4901) found +[675] Forked 4902 +(4902) found +[674] Forked 4903 +(4903) found +[673] Forked 4904 +(4904) found +[672] Forked 4905 +(4905) found +[671] Forked 4906 +(4906) found +[670] Forked 4907 +(4907) found +[669] Forked 4908 +(4908) found +[668] Forked 4909 +(4909) found +[667] Forked 4910 +(4910) found +[666] Forked 4911 +(4911) found +[665] Forked 4912 +(4912) found +[664] Forked 4913 +(4913) found +[663] Forked 4914 +(4914) found +[662] Forked 4915 +(4915) found +[661] Forked 4916 +(4916) found +[660] Forked 4917 +(4917) found +[659] Forked 4918 +(4918) found +[658] Forked 4919 +(4919) found +[657] Forked 4920 +(4920) found +[656] Forked 4921 +(4921) found +[655] Forked 4922 +(4922) found +[654] Forked 4923 +(4923) found +[653] Forked 4924 +(4924) found +[652] Forked 4925 +(4925) found +[651] Forked 4926 +(4926) found +[650] Forked 4927 +(4927) found +[649] Forked 4928 +(4928) found +[648] Forked 4929 +(4929) found +[647] Forked 4930 +(4930) found +[646] Forked 4931 +(4931) found +[645] Forked 4932 +(4932) found +[644] Forked 4933 +(4933) found +[643] Forked 4934 +(4934) found +[642] Forked 4935 +(4935) found +[641] Forked 4936 +(4936) found +[640] Forked 4937 +(4937) found +[639] Forked 4938 +(4938) found +[638] Forked 4939 +(4939) found +[637] Forked 4940 +(4940) found +[636] Forked 4941 +(4941) found +[635] Forked 4942 +(4942) found +[634] Forked 4943 +(4943) found +[633] Forked 4944 +(4944) found +[632] Forked 4945 +(4945) found +[631] Forked 4946 +(4946) found +[630] Forked 4947 +(4947) found +[629] Forked 4948 +(4948) found +[628] Forked 4949 +(4949) found +[627] Forked 4950 +(4950) found +[626] Forked 4951 +(4951) found +[625] Forked 4952 +(4952) found +[624] Forked 4953 +(4953) found +[623] Forked 4954 +(4954) found +[622] Forked 4955 +(4955) found +[621] Forked 4956 +[620] Forked 4957 +(4956) found +(4957) found +[619] Forked 4958 +[618] Forked 4959 +(4958) found +(4959) found +[617] Forked 4960 +[616] Forked 4961 +(4960) found +(4961) found +[615] Forked 4962 +[614] Forked 4963 +(4962) found +(4963) found +[613] Forked 4964 +[612] Forked 4965 +(4964) found +(4965) found +[611] Forked 4966 +[610] Forked 4967 +(4966) found +(4967) found +[609] Forked 4968 +[608] Forked 4969 +(4968) found +(4969) found +[607] Forked 4970 +[606] Forked 4971 +(4970) found +(4971) found +[605] Forked 4972 +[604] Forked 4973 +(4972) found +(4973) found +[603] Forked 4974 +[602] Forked 4975 +(4974) found +(4975) found +[601] Forked 4976 +[600] Forked 4977 +(4976) found +(4977) found +[599] Forked 4978 +[598] Forked 4979 +(4978) found +(4979) found +[597] Forked 4980 +[596] Forked 4981 +(4980) found +(4981) found +[595] Forked 4982 +[594] Forked 4983 +(4982) found +(4983) found +[593] Forked 4984 +[592] Forked 4985 +(4984) found +(4985) found +[591] Forked 4986 +[590] Forked 4987 +(4986) found +(4987) found +[589] Forked 4988 +[588] Forked 4989 +(4988) found +(4989) found +[587] Forked 4990 +[586] Forked 4991 +(4990) found +(4991) found +[585] Forked 4992 +[584] Forked 4993 +(4992) found +(4993) found +[583] Forked 4994 +[582] Forked 4995 +(4994) found +(4995) found +[581] Forked 4996 +[580] Forked 4997 +(4996) found +(4997) found +[579] Forked 4998 +[578] Forked 4999 +(4998) found +(4999) found +[577] Forked 5000 +[576] Forked 5001 +(5000) found +(5001) found +[575] Forked 5002 +(5002) found +[574] Forked 5003 +(5003) found +[573] Forked 5004 +(5004) found +[572] Forked 5005 +(5005) found +[571] Forked 5006 +(5006) found +[570] Forked 5007 +(5007) found +[569] Forked 5008 +(5008) found +[568] Forked 5009 +(5009) found +[567] Forked 5010 +(5010) found +[566] Forked 5011 +(5011) found +[565] Forked 5012 +(5012) found +[564] Forked 5013 +(5013) found +[563] Forked 5014 +(5014) found +[562] Forked 5015 +(5015) found +[561] Forked 5016 +(5016) found +[560] Forked 5017 +(5017) found +[559] Forked 5018 +(5018) found +[558] Forked 5019 +(5019) found +[557] Forked 5020 +(5020) found +[556] Forked 5021 +(5021) found +[555] Forked 5022 +(5022) found +[554] Forked 5023 +(5023) found +[553] Forked 5024 +(5024) found +[552] Forked 5025 +(5025) found +[551] Forked 5026 +(5026) found +[550] Forked 5027 +(5027) found +[549] Forked 5028 +(5028) found +[548] Forked 5029 +(5029) found +[547] Forked 5030 +(5030) found +[546] Forked 5031 +(5031) found +[545] Forked 5032 +(5032) found +[544] Forked 5033 +(5033) found +[543] Forked 5034 +(5034) found +[542] Forked 5035 +(5035) found +[541] Forked 5036 +(5036) found +[540] Forked 5037 +[539] Forked 5038 +(5037) found +(5038) found +[538] Forked 5039 +[537] Forked 5040 +(5039) found +(5040) found +[536] Forked 5041 +[535] Forked 5042 +(5041) found +(5042) found +[534] Forked 5043 +[533] Forked 5044 +(5043) found +(5044) found +[532] Forked 5045 +[531] Forked 5046 +(5045) found +(5046) found +[530] Forked 5047 +[529] Forked 5048 +(5047) found +(5048) found +[528] Forked 5049 +[527] Forked 5050 +(5049) found +(5050) found +[526] Forked 5051 +[525] Forked 5052 +(5051) found +(5052) found +[524] Forked 5053 +[523] Forked 5054 +(5053) found +(5054) found +[522] Forked 5055 +[521] Forked 5056 +(5055) found +(5056) found +[520] Forked 5057 +[519] Forked 5058 +(5057) found +(5058) found +[518] Forked 5059 +[517] Forked 5060 +(5059) found +(5060) found +[516] Forked 5061 +[515] Forked 5062 +(5061) found +(5062) found +[514] Forked 5063 +[513] Forked 5064 +(5063) found +(5064) found +[512] Forked 5065 +[511] Forked 5066 +(5065) found +(5066) found +[510] Forked 5067 +[509] Forked 5068 +(5067) found +(5068) found +[508] Forked 5069 +[507] Forked 5070 +(5069) found +(5070) found +[506] Forked 5071 +[505] Forked 5072 +(5071) found +(5072) found +[504] Forked 5073 +[503] Forked 5074 +(5073) found +(5074) found +[502] Forked 5075 +[501] Forked 5076 +(5075) found +(5076) found +[500] Forked 5077 +[499] Forked 5078 +(5077) found +(5078) found +[498] Forked 5079 +[497] Forked 5080 +(5079) found +(5080) found +[496] Forked 5081 +[495] Forked 5082 +(5081) found +(5082) found +[494] Forked 5083 +(5083) found +[493] Forked 5084 +(5084) found +[492] Forked 5085 +(5085) found +[491] Forked 5086 +(5086) found +[490] Forked 5087 +(5087) found +[489] Forked 5088 +(5088) found +[488] Forked 5089 +(5089) found +[487] Forked 5090 +(5090) found +[486] Forked 5091 +(5091) found +[485] Forked 5092 +(5092) found +[484] Forked 5093 +(5093) found +[483] Forked 5094 +(5094) found +[482] Forked 5095 +(5095) found +[481] Forked 5096 +(5096) found +[480] Forked 5097 +(5097) found +[479] Forked 5098 +(5098) found +[478] Forked 5099 +(5099) found +[477] Forked 5100 +(5100) found +[476] Forked 5101 +(5101) found +[475] Forked 5102 +(5102) found +[474] Forked 5103 +(5103) found +[473] Forked 5104 +(5104) found +[472] Forked 5105 +(5105) found +[471] Forked 5106 +(5106) found +[470] Forked 5107 +(5107) found +[469] Forked 5108 +(5108) found +[468] Forked 5109 +(5109) found +[467] Forked 5110 +(5110) found +[466] Forked 5111 +(5111) found +[465] Forked 5112 +(5112) found +[464] Forked 5113 +(5113) found +[463] Forked 5114 +(5114) found +[462] Forked 5115 +(5115) found +[461] Forked 5116 +(5116) found +[460] Forked 5117 +(5117) found +[459] Forked 5118 +(5118) found +[458] Forked 5119 +(5119) found +[457] Forked 5120 +[456] Forked 5121 +(5120) found +(5121) found +[455] Forked 5122 +[454] Forked 5123 +(5122) found +(5123) found +[453] Forked 5124 +[452] Forked 5125 +(5124) found +(5125) found +[451] Forked 5126 +[450] Forked 5127 +(5126) found +(5127) found +[449] Forked 5128 +[448] Forked 5129 +(5128) found +(5129) found +[447] Forked 5130 +[446] Forked 5131 +(5130) found +(5131) found +[445] Forked 5132 +[444] Forked 5133 +(5132) found +(5133) found +[443] Forked 5134 +[442] Forked 5135 +(5134) found +(5135) found +[441] Forked 5136 +(5136) found +[440] Forked 5137 +(5137) found +[439] Forked 5138 +(5138) found +[438] Forked 5139 +(5139) found +[437] Forked 5140 +(5140) found +[436] Forked 5141 +(5141) found +[435] Forked 5142 +(5142) found +[434] Forked 5143 +(5143) found +[433] Forked 5144 +[432] Forked 5145 +(5144) found +(5145) found +[431] Forked 5146 +[430] Forked 5147 +(5146) found +(5147) found +[429] Forked 5148 +[428] Forked 5149 +(5148) found +(5149) found +[427] Forked 5150 +[426] Forked 5151 +(5150) found +(5151) found +[425] Forked 5152 +[424] Forked 5153 +(5152) found +(5153) found +[423] Forked 5154 +[422] Forked 5155 +(5154) found +(5155) found +[421] Forked 5156 +[420] Forked 5157 +(5156) found +(5157) found +[419] Forked 5158 +[418] Forked 5159 +(5158) found +(5159) found +[417] Forked 5160 +[416] Forked 5161 +(5160) found +(5161) found +[415] Forked 5162 +[414] Forked 5164 +(5162) found +(5164) found +[413] Forked 5165 +(5165) found +[412] Forked 5166 +(5166) found +[411] Forked 5167 +(5167) found +[410] Forked 5168 +(5168) found +[409] Forked 5169 +(5169) found +[408] Forked 5170 +(5170) found +[407] Forked 5171 +(5171) found +[406] Forked 5172 +(5172) found +[405] Forked 5173 +(5173) found +[404] Forked 5174 +(5174) found +[403] Forked 5175 +(5175) found +[402] Forked 5176 +(5176) found +[401] Forked 5177 +(5177) found +[400] Forked 5178 +(5178) found +[399] Forked 5179 +(5179) found +[398] Forked 5180 +(5180) found +[397] Forked 5181 +(5181) found +[396] Forked 5182 +(5182) found +[395] Forked 5183 +(5183) found +[394] Forked 5184 +(5184) found +[393] Forked 5185 +(5185) found +[392] Forked 5186 +(5186) found +[391] Forked 5187 +(5187) found +[390] Forked 5188 +(5188) found +[389] Forked 5189 +(5189) found +[388] Forked 5190 +(5190) found +[387] Forked 5191 +(5191) found +[386] Forked 5192 +(5192) found +[385] Forked 5193 +(5193) found +[384] Forked 5194 +(5194) found +[383] Forked 5195 +(5195) found +[382] Forked 5196 +(5196) found +[381] Forked 5197 +(5197) found +[380] Forked 5198 +(5198) found +[379] Forked 5199 +[378] Forked 5200 +(5199) found +(5200) found +[377] Forked 5201 +[376] Forked 5202 +(5201) found +(5202) found +[375] Forked 5203 +[374] Forked 5204 +(5203) found +(5204) found +[373] Forked 5205 +[372] Forked 5206 +(5205) found +(5206) found +[371] Forked 5207 +[370] Forked 5208 +(5207) found +(5208) found +[369] Forked 5209 +[368] Forked 5210 +(5209) found +(5210) found +[367] Forked 5211 +[366] Forked 5212 +(5211) found +(5212) found +[365] Forked 5213 +[364] Forked 5214 +(5213) found +(5214) found +[363] Forked 5215 +[362] Forked 5216 +(5215) found +(5216) found +[361] Forked 5217 +[360] Forked 5218 +(5217) found +(5218) found +[359] Forked 5219 +[358] Forked 5220 +(5219) found +(5220) found +[357] Forked 5221 +[356] Forked 5222 +(5221) found +(5222) found +[355] Forked 5223 +[354] Forked 5224 +(5223) found +(5224) found +[353] Forked 5225 +[352] Forked 5226 +(5225) found +(5226) found +[351] Forked 5227 +[350] Forked 5228 +(5227) found +(5228) found +[349] Forked 5229 +[348] Forked 5230 +(5229) found +(5230) found +[347] Forked 5231 +[346] Forked 5232 +(5231) found +(5232) found +[345] Forked 5233 +[344] Forked 5234 +(5233) found +(5234) found +[343] Forked 5235 +[342] Forked 5236 +(5235) found +(5236) found +[341] Forked 5237 +[340] Forked 5238 +(5237) found +(5238) found +[339] Forked 5239 +[338] Forked 5240 +(5239) found +(5240) found +[337] Forked 5241 +[336] Forked 5242 +(5241) found +(5242) found +[335] Forked 5243 +[334] Forked 5244 +(5243) found +(5244) found +[333] Forked 5245 +(5245) found +[332] Forked 5246 +(5246) found +[331] Forked 5247 +(5247) found +[330] Forked 5248 +(5248) found +[329] Forked 5249 +(5249) found +[328] Forked 5250 +(5250) found +[327] Forked 5251 +(5251) found +[326] Forked 5252 +(5252) found +[325] Forked 5253 +(5253) found +[324] Forked 5254 +(5254) found +[323] Forked 5255 +(5255) found +[322] Forked 5256 +(5256) found +[321] Forked 5257 +(5257) found +[320] Forked 5258 +(5258) found +[319] Forked 5259 +(5259) found +[318] Forked 5260 +(5260) found +[317] Forked 5261 +(5261) found +[316] Forked 5262 +(5262) found +[315] Forked 5263 +(5263) found +[314] Forked 5264 +(5264) found +[313] Forked 5265 +(5265) found +[312] Forked 5266 +(5266) found +[311] Forked 5267 +(5267) found +[310] Forked 5268 +(5268) found +[309] Forked 5269 +(5269) found +[308] Forked 5270 +(5270) found +[307] Forked 5271 +(5271) found +[306] Forked 5272 +(5272) found +[305] Forked 5273 +(5273) found +[304] Forked 5274 +(5274) found +[303] Forked 5275 +(5275) found +[302] Forked 5276 +(5276) found +[301] Forked 5277 +(5277) found +[300] Forked 5278 +(5278) found +[299] Forked 5279 +(5279) found +[298] Forked 5280 +(5280) found +[297] Forked 5281 +[296] Forked 5282 +(5281) found +(5282) found +[295] Forked 5283 +[294] Forked 5284 +(5283) found +(5284) found +[293] Forked 5285 +[292] Forked 5286 +(5285) found +(5286) found +[291] Forked 5287 +[290] Forked 5288 +(5287) found +(5288) found +[289] Forked 5289 +[288] Forked 5290 +(5289) found +(5290) found +[287] Forked 5291 +[286] Forked 5292 +(5291) found +(5292) found +[285] Forked 5293 +[284] Forked 5294 +(5293) found +(5294) found +[283] Forked 5295 +[282] Forked 5296 +(5295) found +(5296) found +[281] Forked 5297 +[280] Forked 5298 +(5297) found +(5298) found +[279] Forked 5299 +[278] Forked 5300 +(5299) found +(5300) found +[277] Forked 5301 +[276] Forked 5302 +(5301) found +(5302) found +[275] Forked 5303 +[274] Forked 5304 +(5303) found +(5304) found +[273] Forked 5305 +[272] Forked 5306 +(5305) found +(5306) found +[271] Forked 5307 +[270] Forked 5308 +(5307) found +(5308) found +[269] Forked 5309 +[268] Forked 5310 +(5309) found +(5310) found +[267] Forked 5311 +[266] Forked 5312 +(5311) found +(5312) found +[265] Forked 5313 +[264] Forked 5314 +(5313) found +(5314) found +[263] Forked 5315 +[262] Forked 5316 +(5315) found +(5316) found +[261] Forked 5317 +[260] Forked 5318 +(5317) found +(5318) found +[259] Forked 5319 +[258] Forked 5320 +(5319) found +(5320) found +[257] Forked 5321 +[256] Forked 5322 +(5321) found +(5322) found +[255] Forked 5323 +[254] Forked 5324 +(5323) found +(5324) found +[253] Forked 5325 +[252] Forked 5326 +(5325) found +(5326) found +[251] Forked 5327 +(5327) found +[250] Forked 5328 +(5328) found +[249] Forked 5329 +(5329) found +[248] Forked 5330 +(5330) found +[247] Forked 5331 +(5331) found +[246] Forked 5332 +(5332) found +[245] Forked 5333 +(5333) found +[244] Forked 5334 +(5334) found +[243] Forked 5335 +(5335) found +[242] Forked 5336 +(5336) found +[241] Forked 5337 +(5337) found +[240] Forked 5338 +(5338) found +[239] Forked 5339 +(5339) found +[238] Forked 5340 +(5340) found +[237] Forked 5341 +(5341) found +[236] Forked 5342 +(5342) found +[235] Forked 5343 +(5343) found +[234] Forked 5344 +(5344) found +[233] Forked 5345 +(5345) found +[232] Forked 5346 +(5346) found +[231] Forked 5347 +(5347) found +[230] Forked 5348 +(5348) found +[229] Forked 5349 +(5349) found +[228] Forked 5350 +(5350) found +[227] Forked 5351 +(5351) found +[226] Forked 5352 +(5352) found +[225] Forked 5353 +(5353) found +[224] Forked 5354 +(5354) found +[223] Forked 5355 +(5355) found +[222] Forked 5356 +(5356) found +[221] Forked 5357 +(5357) found +[220] Forked 5358 +(5358) found +[219] Forked 5359 +(5359) found +[218] Forked 5360 +(5360) found +[217] Forked 5361 +(5361) found +[216] Forked 5362 +(5362) found +[215] Forked 5363 +[214] Forked 5364 +(5363) found +(5364) found +[213] Forked 5365 +[212] Forked 5366 +(5365) found +(5366) found +[211] Forked 5367 +[210] Forked 5368 +(5367) found +(5368) found +[209] Forked 5369 +[208] Forked 5370 +(5369) found +(5370) found +[207] Forked 5371 +[206] Forked 5372 +(5371) found +(5372) found +[205] Forked 5373 +[204] Forked 5374 +(5373) found +(5374) found +[203] Forked 5375 +[202] Forked 5376 +(5375) found +(5376) found +[201] Forked 5377 +[200] Forked 5378 +(5377) found +(5378) found +[199] Forked 5379 +[198] Forked 5380 +(5379) found +(5380) found +[197] Forked 5381 +[196] Forked 5382 +(5381) found +(5382) found +[195] Forked 5383 +[194] Forked 5384 +(5383) found +(5384) found +[193] Forked 5385 +[192] Forked 5386 +(5385) found +(5386) found +[191] Forked 5387 +[190] Forked 5388 +(5387) found +(5388) found +[189] Forked 5389 +[188] Forked 5390 +(5389) found +(5390) found +[187] Forked 5391 +[186] Forked 5392 +(5391) found +(5392) found +[185] Forked 5393 +[184] Forked 5394 +(5393) found +(5394) found +[183] Forked 5395 +[182] Forked 5396 +(5395) found +(5396) found +[181] Forked 5397 +[180] Forked 5398 +(5397) found +(5398) found +[179] Forked 5399 +[178] Forked 5400 +(5399) found +(5400) found +[177] Forked 5401 +[176] Forked 5403 +(5401) found +(5403) found +[175] Forked 5404 +(5404) found +[174] Forked 5405 +(5405) found +[173] Forked 5406 +(5406) found +[172] Forked 5407 +(5407) found +[171] Forked 5408 +(5408) found +[170] Forked 5409 +(5409) found +[169] Forked 5410 +(5410) found +[168] Forked 5411 +(5411) found +[167] Forked 5412 +(5412) found +[166] Forked 5413 +(5413) found +[165] Forked 5414 +(5414) found +[164] Forked 5415 +(5415) found +[163] Forked 5416 +(5416) found +[162] Forked 5417 +(5417) found +[161] Forked 5418 +(5418) found +[160] Forked 5419 +(5419) found +[159] Forked 5420 +(5420) found +[158] Forked 5421 +(5421) found +[157] Forked 5422 +(5422) found +[156] Forked 5423 +(5423) found +[155] Forked 5424 +(5424) found +[154] Forked 5425 +(5425) found +[153] Forked 5426 +(5426) found +[152] Forked 5427 +(5427) found +[151] Forked 5428 +(5428) found +[150] Forked 5429 +(5429) found +[149] Forked 5430 +(5430) found +[148] Forked 5431 +(5431) found +[147] Forked 5432 +(5432) found +[146] Forked 5433 +(5433) found +[145] Forked 5434 +(5434) found +[144] Forked 5435 +(5435) found +[143] Forked 5436 +(5436) found +[142] Forked 5437 +(5437) found +[141] Forked 5438 +(5438) found +[140] Forked 5439 +(5439) found +[139] Forked 5440 +(5440) found +[138] Forked 5441 +(5441) found +[137] Forked 5442 +(5442) found +[136] Forked 5443 +[135] Forked 5444 +(5443) found +(5444) found +[134] Forked 5445 +[133] Forked 5446 +(5446) found +(5445) found +[132] Forked 5447 +(5447) found +[131] Forked 5448 +(5448) found +[130] Forked 5449 +(5449) found +[129] Forked 5450 +(5450) found +[128] Forked 5451 +(5451) found +[127] Forked 5452 +(5452) found +[126] Forked 5453 +(5453) found +[125] Forked 5454 +(5454) found +[124] Forked 5455 +(5455) found +[123] Forked 5456 +(5456) found +[122] Forked 5457 +(5457) found +[121] Forked 5458 +(5458) found +[120] Forked 5459 +(5459) found +[119] Forked 5460 +(5460) found +[118] Forked 5461 +(5461) found +[117] Forked 5462 +(5462) found +[116] Forked 5463 +(5463) found +[115] Forked 5464 +(5464) found +[114] Forked 5465 +(5465) found +[113] Forked 5466 +(5466) found +[112] Forked 5467 +(5467) found +[111] Forked 5468 +(5468) found +[110] Forked 5469 +(5469) found +[109] Forked 5470 +(5470) found +[108] Forked 5471 +(5471) found +[107] Forked 5472 +(5472) found +[106] Forked 5473 +(5473) found +[105] Forked 5474 +(5474) found +[104] Forked 5475 +(5475) found +[103] Forked 5476 +(5476) found +[102] Forked 5477 +(5477) found +[101] Forked 5478 +(5478) found +[100] Forked 5479 +(5479) found +[99] Forked 5480 +(5480) found +[98] Forked 5481 +(5481) found +[97] Forked 5482 +(5482) found +[96] Forked 5483 +(5483) found +[95] Forked 5484 +(5484) found +[94] Forked 5485 +(5485) found +[93] Forked 5486 +(5486) found +[92] Forked 5487 +(5487) found +[91] Forked 5488 +(5488) found +[90] Forked 5489 +(5489) found +[89] Forked 5490 +(5490) found +[88] Forked 5491 +(5491) found +[87] Forked 5492 +(5492) found +[86] Forked 5493 +(5493) found +[85] Forked 5494 +(5494) found +[84] Forked 5495 +(5495) found +[83] Forked 5496 +(5496) found +[82] Forked 5497 +(5497) found +[81] Forked 5498 +(5498) found +[80] Forked 5499 +(5499) found +[79] Forked 5500 +(5500) found +[78] Forked 5501 +(5501) found +[77] Forked 5502 +(5502) found +[76] Forked 5503 +(5503) found +[75] Forked 5504 +(5504) found +[74] Forked 5505 +(5505) found +[73] Forked 5506 +(5506) found +[72] Forked 5507 +(5507) found +[71] Forked 5508 +(5508) found +[70] Forked 5509 +(5509) found +[69] Forked 5510 +(5510) found +[68] Forked 5511 +(5511) found +[67] Forked 5512 +(5512) found +[66] Forked 5513 +(5513) found +[65] Forked 5514 +(5514) found +[64] Forked 5515 +(5515) found +[63] Forked 5516 +(5516) found +[62] Forked 5517 +(5517) found +[61] Forked 5518 +(5518) found +[60] Forked 5519 +(5519) found +[59] Forked 5520 +(5520) found +[58] Forked 5521 +(5521) found +[57] Forked 5522 +(5522) found +[56] Forked 5523 +(5523) found +[55] Forked 5524 +(5524) found +[54] Forked 5525 +(5525) found +[53] Forked 5526 +(5526) found +[52] Forked 5527 +(5527) found +[51] Forked 5528 +(5528) found +[50] Forked 5529 +(5529) found +[49] Forked 5530 +(5530) found +[48] Forked 5531 +(5531) found +[47] Forked 5532 +(5532) found +[46] Forked 5533 +(5533) found +[45] Forked 5534 +(5534) found +[44] Forked 5535 +(5535) found +[43] Forked 5536 +(5536) found +[42] Forked 5537 +(5537) found +[41] Forked 5538 +(5538) found +[40] Forked 5539 +(5539) found +[39] Forked 5540 +(5540) found +[38] Forked 5541 +(5541) found +[37] Forked 5542 +(5542) found +[36] Forked 5543 +(5543) found +[35] Forked 5544 +(5544) found +[34] Forked 5545 +(5545) found +[33] Forked 5546 +(5546) found +[32] Forked 5547 +(5547) found +[31] Forked 5548 +(5548) found +[30] Forked 5549 +(5549) found +[29] Forked 5550 +(5550) found +[28] Forked 5551 +[27] Forked 5552 +(5551) found +(5552) found +[26] Forked 5553 +[25] Forked 5554 +(5553) found +(5554) found +[24] Forked 5555 +[23] Forked 5556 +(5555) found +(5556) found +[22] Forked 5557 +[21] Forked 5558 +(5557) found +(5558) found +[20] Forked 5559 +[19] Forked 5560 +(5559) found +(5560) found +[18] Forked 5561 +[17] Forked 5562 +(5561) found +(5562) found +[16] Forked 5563 +[15] Forked 5564 +(5563) found +(5564) found +[14] Forked 5565 +[13] Forked 5566 +(5565) found +(5566) found +[12] Forked 5567 +(5567) found +[11] Forked 5568 +[10] Forked 5569 +(5568) found +(5569) found +[9] Forked 5570 +[8] Forked 5571 +(5570) found +(5571) found +[7] Forked 5572 +[6] Forked 5573 +(5572) found +(5573) found +[5] Forked 5574 +[4] Forked 5575 +(5574) found +(5575) found +[3] Forked 5576 +[2] Forked 5577 +(5576) found +(5577) found +[1] Forked 5578 +[0] Forked 5579 +(5578) found +(5579) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.G b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.G new file mode 100644 index 00000000..7e9c89f9 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/fork-latency.c.G @@ -0,0 +1,40001 @@ +MAX=20000 +[19999] Forked 18452 +(18452) found +[19998] Forked 18453 +(18453) found +[19997] Forked 18454 +(18454) found +[19996] Forked 18455 +(18455) found +[19995] Forked 18456 +(18456) found +[19994] Forked 18457 +(18457) found +[19993] Forked 18458 +(18458) found +[19992] Forked 18459 +(18459) found +[19991] Forked 18460 +(18460) found +[19990] Forked 18461 +(18461) found +[19989] Forked 18462 +(18462) found +[19988] Forked 18463 +(18463) found +[19987] Forked 18464 +(18464) found +[19986] Forked 18466 +(18466) found +[19985] Forked 18467 +(18467) found +[19984] Forked 18468 +(18468) found +[19983] Forked 18469 +(18469) found +[19982] Forked 18470 +(18470) found +[19981] Forked 18471 +(18471) found +[19980] Forked 18472 +(18472) found +[19979] Forked 18473 +(18473) found +[19978] Forked 18474 +(18474) found +[19977] Forked 18475 +(18475) found +[19976] Forked 18476 +(18476) found +[19975] Forked 18477 +(18477) found +[19974] Forked 18478 +(18478) found +[19973] Forked 18479 +(18479) found +[19972] Forked 18480 +(18480) found +[19971] Forked 18481 +(18481) found +[19970] Forked 18482 +(18482) found +[19969] Forked 18483 +(18483) found +[19968] Forked 18484 +(18484) found +[19967] Forked 18485 +(18485) found +[19966] Forked 18486 +(18486) found +[19965] Forked 18487 +(18487) found +[19964] Forked 18488 +(18488) found +[19963] Forked 18489 +(18489) found +[19962] Forked 18490 +(18490) found +[19961] Forked 18491 +(18491) found +[19960] Forked 18492 +(18492) found +[19959] Forked 18493 +(18493) found +[19958] Forked 18494 +(18494) found +[19957] Forked 18495 +(18495) found +[19956] Forked 18496 +(18496) found +[19955] Forked 18497 +(18497) found +[19954] Forked 18498 +(18498) found +[19953] Forked 18499 +(18499) found +[19952] Forked 18500 +(18500) found +[19951] Forked 18501 +(18501) found +[19950] Forked 18502 +(18502) found +[19949] Forked 18503 +(18503) found +[19948] Forked 18504 +(18504) found +[19947] Forked 18505 +(18505) found +[19946] Forked 18506 +(18506) found +[19945] Forked 18507 +(18507) found +[19944] Forked 18508 +(18508) found +[19943] Forked 18509 +(18509) found +[19942] Forked 18510 +(18510) found +[19941] Forked 18511 +(18511) found +[19940] Forked 18512 +(18512) found +[19939] Forked 18513 +(18513) found +[19938] Forked 18514 +(18514) found +[19937] Forked 18515 +(18515) found +[19936] Forked 18516 +(18516) found +[19935] Forked 18517 +(18517) found +[19934] Forked 18518 +(18518) found +[19933] Forked 18519 +(18519) found +[19932] Forked 18520 +(18520) found +[19931] Forked 18521 +(18521) found +[19930] Forked 18522 +(18522) found +[19929] Forked 18523 +(18523) found +[19928] Forked 18524 +(18524) found +[19927] Forked 18525 +(18525) found +[19926] Forked 18526 +(18526) found +[19925] Forked 18527 +(18527) found +[19924] Forked 18528 +(18528) found +[19923] Forked 18529 +(18529) found +[19922] Forked 18530 +(18530) found +[19921] Forked 18531 +(18531) found +[19920] Forked 18532 +(18532) found +[19919] Forked 18533 +(18533) found +[19918] Forked 18534 +(18534) found +[19917] Forked 18535 +(18535) found +[19916] Forked 18536 +(18536) found +[19915] Forked 18537 +(18537) found +[19914] Forked 18538 +(18538) found +[19913] Forked 18539 +(18539) found +[19912] Forked 18540 +(18540) found +[19911] Forked 18541 +(18541) found +[19910] Forked 18542 +(18542) found +[19909] Forked 18543 +(18543) found +[19908] Forked 18544 +(18544) found +[19907] Forked 18545 +(18545) found +[19906] Forked 18546 +(18546) found +[19905] Forked 18547 +(18547) found +[19904] Forked 18548 +(18548) found +[19903] Forked 18549 +(18549) found +[19902] Forked 18550 +(18550) found +[19901] Forked 18551 +(18551) found +[19900] Forked 18552 +(18552) found +[19899] Forked 18553 +(18553) found +[19898] Forked 18554 +(18554) found +[19897] Forked 18555 +(18555) found +[19896] Forked 18556 +(18556) found +[19895] Forked 18557 +(18557) found +[19894] Forked 18558 +(18558) found +[19893] Forked 18559 +(18559) found +[19892] Forked 18560 +(18560) found +[19891] Forked 18561 +[19890] Forked 18562 +(18561) found +(18562) found +[19889] Forked 18563 +[19888] Forked 18564 +(18563) found +(18564) found +[19887] Forked 18565 +[19886] Forked 18567 +(18565) found +(18567) found +[19885] Forked 18568 +[19884] Forked 18569 +(18568) found +(18569) found +[19883] Forked 18570 +[19882] Forked 18571 +(18570) found +(18571) found +[19881] Forked 18572 +[19880] Forked 18573 +(18572) found +(18573) found +[19879] Forked 18574 +[19878] Forked 18575 +(18574) found +(18575) found +[19877] Forked 18576 +[19876] Forked 18577 +(18576) found +(18577) found +[19875] Forked 18578 +[19874] Forked 18579 +(18578) found +(18579) found +[19873] Forked 18580 +[19872] Forked 18581 +(18580) found +(18581) found +[19871] Forked 18582 +[19870] Forked 18583 +(18582) found +(18583) found +[19869] Forked 18584 +[19868] Forked 18585 +(18584) found +(18585) found +[19867] Forked 18586 +[19866] Forked 18587 +(18586) found +(18587) found +[19865] Forked 18588 +[19864] Forked 18589 +(18588) found +(18589) found +[19863] Forked 18590 +[19862] Forked 18591 +(18590) found +(18591) found +[19861] Forked 18592 +[19860] Forked 18593 +(18592) found +(18593) found +[19859] Forked 18594 +[19858] Forked 18595 +(18594) found +(18595) found +[19857] Forked 18596 +[19856] Forked 18597 +(18596) found +(18597) found +[19855] Forked 18598 +[19854] Forked 18599 +(18598) found +(18599) found +[19853] Forked 18600 +[19852] Forked 18601 +(18600) found +(18601) found +[19851] Forked 18602 +[19850] Forked 18603 +(18602) found +(18603) found +[19849] Forked 18604 +[19848] Forked 18605 +(18604) found +(18605) found +[19847] Forked 18606 +[19846] Forked 18607 +(18606) found +(18607) found +[19845] Forked 18608 +[19844] Forked 18609 +(18608) found +(18609) found +[19843] Forked 18610 +[19842] Forked 18612 +(18610) found +(18612) found +[19841] Forked 18613 +[19840] Forked 18614 +(18613) found +(18614) found +[19839] Forked 18615 +[19838] Forked 18616 +(18615) found +(18616) found +[19837] Forked 18617 +[19836] Forked 18618 +(18617) found +(18618) found +[19835] Forked 18619 +[19834] Forked 18620 +(18619) found +(18620) found +[19833] Forked 18621 +[19832] Forked 18622 +(18621) found +(18622) found +[19831] Forked 18623 +[19830] Forked 18624 +(18623) found +(18624) found +[19829] Forked 18625 +[19828] Forked 18626 +(18625) found +(18626) found +[19827] Forked 18627 +[19826] Forked 18628 +(18627) found +(18628) found +[19825] Forked 18629 +[19824] Forked 18630 +(18629) found +(18630) found +[19823] Forked 18631 +[19822] Forked 18632 +(18631) found +(18632) found +[19821] Forked 18633 +[19820] Forked 18634 +(18633) found +(18634) found +[19819] Forked 18635 +[19818] Forked 18636 +(18635) found +(18636) found +[19817] Forked 18637 +[19816] Forked 18638 +(18637) found +(18638) found +[19815] Forked 18639 +[19814] Forked 18640 +(18639) found +(18640) found +[19813] Forked 18641 +[19812] Forked 18642 +(18641) found +(18642) found +[19811] Forked 18643 +[19810] Forked 18644 +(18643) found +(18644) found +[19809] Forked 18645 +[19808] Forked 18646 +(18645) found +(18646) found +[19807] Forked 18647 +[19806] Forked 18648 +(18647) found +(18648) found +[19805] Forked 18649 +[19804] Forked 18650 +(18649) found +(18650) found +[19803] Forked 18651 +[19802] Forked 18652 +(18651) found +(18652) found +[19801] Forked 18653 +[19800] Forked 18654 +(18653) found +(18654) found +[19799] Forked 18655 +(18655) found +[19798] Forked 18656 +(18656) found +[19797] Forked 18657 +(18657) found +[19796] Forked 18658 +(18658) found +[19795] Forked 18659 +(18659) found +[19794] Forked 18660 +(18660) found +[19793] Forked 18661 +(18661) found +[19792] Forked 18662 +(18662) found +[19791] Forked 18663 +(18663) found +[19790] Forked 18664 +(18664) found +[19789] Forked 18665 +(18665) found +[19788] Forked 18666 +(18666) found +[19787] Forked 18667 +(18667) found +[19786] Forked 18668 +(18668) found +[19785] Forked 18669 +(18669) found +[19784] Forked 18670 +(18670) found +[19783] Forked 18671 +(18671) found +[19782] Forked 18672 +(18672) found +[19781] Forked 18673 +(18673) found +[19780] Forked 18674 +(18674) found +[19779] Forked 18675 +(18675) found +[19778] Forked 18676 +(18676) found +[19777] Forked 18677 +(18677) found +[19776] Forked 18678 +(18678) found +[19775] Forked 18679 +(18679) found +[19774] Forked 18680 +(18680) found +[19773] Forked 18681 +(18681) found +[19772] Forked 18682 +(18682) found +[19771] Forked 18683 +(18683) found +[19770] Forked 18684 +(18684) found +[19769] Forked 18685 +(18685) found +[19768] Forked 18686 +(18686) found +[19767] Forked 18687 +(18687) found +[19766] Forked 18688 +(18688) found +[19765] Forked 18689 +(18689) found +[19764] Forked 18690 +(18690) found +[19763] Forked 18691 +(18691) found +[19762] Forked 18692 +(18692) found +[19761] Forked 18693 +[19760] Forked 18694 +(18693) found +(18694) found +[19759] Forked 18695 +(18695) found +[19758] Forked 18696 +(18696) found +[19757] Forked 18697 +(18697) found +[19756] Forked 18698 +(18698) found +[19755] Forked 18699 +[19754] Forked 18700 +(18699) found +(18700) found +[19753] Forked 18701 +[19752] Forked 18702 +(18701) found +(18702) found +[19751] Forked 18703 +[19750] Forked 18704 +(18703) found +(18704) found +[19749] Forked 18705 +[19748] Forked 18706 +(18705) found +(18706) found +[19747] Forked 18707 +[19746] Forked 18708 +(18707) found +(18708) found +[19745] Forked 18709 +[19744] Forked 18710 +(18709) found +(18710) found +[19743] Forked 18711 +[19742] Forked 18712 +(18711) found +(18712) found +[19741] Forked 18713 +[19740] Forked 18714 +(18713) found +(18714) found +[19739] Forked 18715 +[19738] Forked 18716 +(18715) found +(18716) found +[19737] Forked 18717 +[19736] Forked 18718 +(18717) found +(18718) found +[19735] Forked 18719 +[19734] Forked 18720 +(18719) found +(18720) found +[19733] Forked 18721 +[19732] Forked 18722 +(18721) found +(18722) found +[19731] Forked 18723 +[19730] Forked 18724 +(18723) found +(18724) found +[19729] Forked 18725 +[19728] Forked 18726 +(18725) found +(18726) found +[19727] Forked 18727 +[19726] Forked 18728 +(18727) found +(18728) found +[19725] Forked 18729 +[19724] Forked 18730 +(18729) found +(18730) found +[19723] Forked 18731 +[19722] Forked 18732 +(18731) found +(18732) found +[19721] Forked 18733 +[19720] Forked 18734 +(18733) found +(18734) found +[19719] Forked 18735 +[19718] Forked 18736 +(18735) found +(18736) found +[19717] Forked 18737 +[19716] Forked 18738 +(18737) found +(18738) found +[19715] Forked 18739 +[19714] Forked 18740 +(18739) found +(18740) found +[19713] Forked 18741 +[19712] Forked 18742 +(18741) found +(18742) found +[19711] Forked 18743 +[19710] Forked 18744 +(18743) found +(18744) found +[19709] Forked 18745 +(18745) found +[19708] Forked 18746 +(18746) found +[19707] Forked 18747 +[19706] Forked 18748 +(18747) found +(18748) found +[19705] Forked 18749 +[19704] Forked 18750 +(18749) found +(18750) found +[19703] Forked 18751 +[19702] Forked 18752 +(18751) found +(18752) found +[19701] Forked 18753 +[19700] Forked 18754 +(18753) found +(18754) found +[19699] Forked 18755 +[19698] Forked 18756 +(18755) found +(18756) found +[19697] Forked 18757 +[19696] Forked 18758 +(18757) found +(18758) found +[19695] Forked 18759 +[19694] Forked 18760 +(18759) found +(18760) found +[19693] Forked 18761 +[19692] Forked 18762 +(18761) found +(18762) found +[19691] Forked 18763 +[19690] Forked 18764 +(18763) found +(18764) found +[19689] Forked 18765 +[19688] Forked 18766 +(18765) found +(18766) found +[19687] Forked 18767 +[19686] Forked 18768 +(18767) found +(18768) found +[19685] Forked 18769 +[19684] Forked 18770 +(18769) found +(18770) found +[19683] Forked 18771 +[19682] Forked 18772 +(18771) found +(18772) found +[19681] Forked 18773 +[19680] Forked 18774 +(18773) found +(18774) found +[19679] Forked 18775 +[19678] Forked 18776 +(18775) found +(18776) found +[19677] Forked 18777 +[19676] Forked 18778 +(18777) found +(18778) found +[19675] Forked 18779 +[19674] Forked 18780 +(18779) found +(18780) found +[19673] Forked 18781 +[19672] Forked 18782 +(18781) found +(18782) found +[19671] Forked 18783 +[19670] Forked 18784 +(18783) found +(18784) found +[19669] Forked 18785 +[19668] Forked 18786 +(18785) found +(18786) found +[19667] Forked 18787 +[19666] Forked 18788 +(18787) found +(18788) found +[19665] Forked 18789 +[19664] Forked 18790 +(18789) found +(18790) found +[19663] Forked 18791 +[19662] Forked 18792 +(18791) found +(18792) found +[19661] Forked 18793 +[19660] Forked 18794 +(18793) found +(18794) found +[19659] Forked 18795 +[19658] Forked 18796 +(18795) found +(18796) found +[19657] Forked 18797 +[19656] Forked 18798 +(18797) found +(18798) found +[19655] Forked 18799 +[19654] Forked 18800 +(18799) found +(18800) found +[19653] Forked 18801 +[19652] Forked 18802 +(18801) found +(18802) found +[19651] Forked 18803 +[19650] Forked 18804 +(18803) found +(18804) found +[19649] Forked 18805 +[19648] Forked 18806 +(18805) found +(18806) found +[19647] Forked 18807 +[19646] Forked 18808 +(18807) found +(18808) found +[19645] Forked 18809 +[19644] Forked 18810 +(18809) found +(18810) found +[19643] Forked 18811 +[19642] Forked 18812 +(18811) found +(18812) found +[19641] Forked 18813 +[19640] Forked 18814 +(18813) found +(18814) found +[19639] Forked 18815 +[19638] Forked 18816 +(18815) found +(18816) found +[19637] Forked 18817 +[19636] Forked 18818 +(18817) found +(18818) found +[19635] Forked 18819 +[19634] Forked 18820 +(18819) found +(18820) found +[19633] Forked 18821 +[19632] Forked 18822 +(18821) found +(18822) found +[19631] Forked 18823 +[19630] Forked 18824 +(18823) found +(18824) found +[19629] Forked 18825 +[19628] Forked 18826 +(18825) found +(18826) found +[19627] Forked 18827 +[19626] Forked 18828 +(18827) found +(18828) found +[19625] Forked 18829 +[19624] Forked 18830 +(18829) found +(18830) found +[19623] Forked 18831 +[19622] Forked 18832 +(18831) found +(18832) found +[19621] Forked 18833 +[19620] Forked 18834 +(18833) found +(18834) found +[19619] Forked 18835 +[19618] Forked 18836 +(18835) found +(18836) found +[19617] Forked 18837 +[19616] Forked 18838 +(18837) found +(18838) found +[19615] Forked 18839 +[19614] Forked 18840 +(18839) found +(18840) found +[19613] Forked 18841 +[19612] Forked 18842 +(18842) found +(18841) found +[19611] Forked 18843 +(18843) found +[19610] Forked 18844 +(18844) found +[19609] Forked 18845 +(18845) found +[19608] Forked 18846 +(18846) found +[19607] Forked 18847 +(18847) found +[19606] Forked 18848 +(18848) found +[19605] Forked 18849 +(18849) found +[19604] Forked 18850 +(18850) found +[19603] Forked 18851 +(18851) found +[19602] Forked 18852 +(18852) found +[19601] Forked 18853 +(18853) found +[19600] Forked 18854 +(18854) found +[19599] Forked 18855 +(18855) found +[19598] Forked 18856 +(18856) found +[19597] Forked 18857 +(18857) found +[19596] Forked 18858 +(18858) found +[19595] Forked 18859 +(18859) found +[19594] Forked 18860 +(18860) found +[19593] Forked 18861 +(18861) found +[19592] Forked 18862 +(18862) found +[19591] Forked 18863 +(18863) found +[19590] Forked 18864 +(18864) found +[19589] Forked 18865 +(18865) found +[19588] Forked 18866 +(18866) found +[19587] Forked 18867 +(18867) found +[19586] Forked 18868 +(18868) found +[19585] Forked 18869 +(18869) found +[19584] Forked 18870 +(18870) found +[19583] Forked 18871 +(18871) found +[19582] Forked 18872 +(18872) found +[19581] Forked 18873 +(18873) found +[19580] Forked 18874 +(18874) found +[19579] Forked 18875 +(18875) found +[19578] Forked 18876 +(18876) found +[19577] Forked 18877 +(18877) found +[19576] Forked 18878 +[19575] Forked 18879 +(18878) found +(18879) found +[19574] Forked 18880 +[19573] Forked 18881 +(18880) found +(18881) found +[19572] Forked 18882 +[19571] Forked 18883 +(18882) found +(18883) found +[19570] Forked 18884 +[19569] Forked 18885 +(18884) found +(18885) found +[19568] Forked 18886 +[19567] Forked 18887 +(18886) found +(18887) found +[19566] Forked 18888 +[19565] Forked 18889 +(18888) found +(18889) found +[19564] Forked 18890 +[19563] Forked 18891 +(18890) found +(18891) found +[19562] Forked 18892 +[19561] Forked 18893 +(18892) found +(18893) found +[19560] Forked 18894 +[19559] Forked 18895 +(18894) found +(18895) found +[19558] Forked 18896 +[19557] Forked 18897 +(18896) found +(18897) found +[19556] Forked 18898 +[19555] Forked 18899 +(18898) found +(18899) found +[19554] Forked 18900 +[19553] Forked 18901 +(18900) found +(18901) found +[19552] Forked 18902 +[19551] Forked 18903 +(18902) found +(18903) found +[19550] Forked 18904 +[19549] Forked 18905 +(18904) found +(18905) found +[19548] Forked 18906 +[19547] Forked 18907 +(18906) found +(18907) found +[19546] Forked 18908 +[19545] Forked 18909 +(18908) found +(18909) found +[19544] Forked 18910 +[19543] Forked 18911 +(18910) found +(18911) found +[19542] Forked 18912 +(18912) found +[19541] Forked 18913 +(18913) found +[19540] Forked 18914 +(18914) found +[19539] Forked 18915 +(18915) found +[19538] Forked 18916 +(18916) found +[19537] Forked 18917 +(18917) found +[19536] Forked 18918 +(18918) found +[19535] Forked 18919 +(18919) found +[19534] Forked 18920 +(18920) found +[19533] Forked 18921 +(18921) found +[19532] Forked 18922 +(18922) found +[19531] Forked 18923 +(18923) found +[19530] Forked 18924 +(18924) found +[19529] Forked 18925 +(18925) found +[19528] Forked 18926 +(18926) found +[19527] Forked 18927 +(18927) found +[19526] Forked 18928 +(18928) found +[19525] Forked 18929 +(18929) found +[19524] Forked 18930 +(18930) found +[19523] Forked 18931 +(18931) found +[19522] Forked 18932 +(18932) found +[19521] Forked 18933 +(18933) found +[19520] Forked 18934 +(18934) found +[19519] Forked 18935 +(18935) found +[19518] Forked 18936 +(18936) found +[19517] Forked 18937 +(18937) found +[19516] Forked 18938 +(18938) found +[19515] Forked 18939 +(18939) found +[19514] Forked 18940 +(18940) found +[19513] Forked 18941 +(18941) found +[19512] Forked 18942 +(18942) found +[19511] Forked 18943 +(18943) found +[19510] Forked 18944 +(18944) found +[19509] Forked 18945 +(18945) found +[19508] Forked 18946 +(18946) found +[19507] Forked 18947 +(18947) found +[19506] Forked 18948 +(18948) found +[19505] Forked 18949 +[19504] Forked 18950 +(18949) found +(18950) found +[19503] Forked 18951 +[19502] Forked 18952 +(18951) found +(18952) found +[19501] Forked 18953 +[19500] Forked 18954 +(18953) found +(18954) found +[19499] Forked 18955 +[19498] Forked 18956 +(18955) found +(18956) found +[19497] Forked 18957 +[19496] Forked 18958 +(18957) found +(18958) found +[19495] Forked 18959 +[19494] Forked 18960 +(18959) found +(18960) found +[19493] Forked 18961 +[19492] Forked 18962 +(18961) found +(18962) found +[19491] Forked 18963 +[19490] Forked 18964 +(18963) found +(18964) found +[19489] Forked 18965 +[19488] Forked 18966 +(18965) found +(18966) found +[19487] Forked 18967 +[19486] Forked 18968 +(18967) found +(18968) found +[19485] Forked 18969 +[19484] Forked 18970 +(18969) found +(18970) found +[19483] Forked 18971 +[19482] Forked 18972 +(18971) found +(18972) found +[19481] Forked 18973 +[19480] Forked 18974 +(18973) found +(18974) found +[19479] Forked 18975 +[19478] Forked 18976 +(18975) found +(18976) found +[19477] Forked 18977 +[19476] Forked 18978 +(18977) found +(18978) found +[19475] Forked 18979 +[19474] Forked 18980 +(18979) found +(18980) found +[19473] Forked 18981 +[19472] Forked 18982 +(18981) found +(18982) found +[19471] Forked 18983 +[19470] Forked 18984 +(18983) found +(18984) found +[19469] Forked 18985 +[19468] Forked 18986 +(18985) found +(18986) found +[19467] Forked 18987 +[19466] Forked 18988 +(18987) found +(18988) found +[19465] Forked 18989 +[19464] Forked 18990 +(18989) found +(18990) found +[19463] Forked 18991 +[19462] Forked 18992 +(18991) found +(18992) found +[19461] Forked 18993 +[19460] Forked 18994 +(18993) found +(18994) found +[19459] Forked 18995 +[19458] Forked 18996 +(18995) found +(18996) found +[19457] Forked 18997 +(18997) found +[19456] Forked 18998 +(18998) found +[19455] Forked 18999 +(18999) found +[19454] Forked 19000 +(19000) found +[19453] Forked 19001 +(19001) found +[19452] Forked 19002 +(19002) found +[19451] Forked 19003 +(19003) found +[19450] Forked 19004 +(19004) found +[19449] Forked 19005 +(19005) found +[19448] Forked 19006 +(19006) found +[19447] Forked 19007 +(19007) found +[19446] Forked 19008 +(19008) found +[19445] Forked 19009 +(19009) found +[19444] Forked 19010 +(19010) found +[19443] Forked 19011 +(19011) found +[19442] Forked 19012 +(19012) found +[19441] Forked 19013 +(19013) found +[19440] Forked 19014 +(19014) found +[19439] Forked 19015 +(19015) found +[19438] Forked 19016 +(19016) found +[19437] Forked 19017 +(19017) found +[19436] Forked 19018 +(19018) found +[19435] Forked 19019 +(19019) found +[19434] Forked 19020 +(19020) found +[19433] Forked 19021 +(19021) found +[19432] Forked 19022 +(19022) found +[19431] Forked 19023 +(19023) found +[19430] Forked 19024 +(19024) found +[19429] Forked 19025 +(19025) found +[19428] Forked 19026 +[19427] Forked 19027 +(19026) found +(19027) found +[19426] Forked 19028 +[19425] Forked 19029 +(19028) found +(19029) found +[19424] Forked 19030 +[19423] Forked 19031 +(19030) found +(19031) found +[19422] Forked 19032 +[19421] Forked 19033 +(19032) found +(19033) found +[19420] Forked 19034 +[19419] Forked 19035 +(19034) found +(19035) found +[19418] Forked 19036 +[19417] Forked 19037 +(19036) found +(19037) found +[19416] Forked 19038 +[19415] Forked 19039 +(19038) found +(19039) found +[19414] Forked 19040 +[19413] Forked 19041 +(19040) found +(19041) found +[19412] Forked 19042 +[19411] Forked 19043 +(19042) found +(19043) found +[19410] Forked 19044 +[19409] Forked 19045 +(19044) found +(19045) found +[19408] Forked 19046 +[19407] Forked 19047 +(19046) found +(19047) found +[19406] Forked 19048 +[19405] Forked 19049 +(19048) found +(19049) found +[19404] Forked 19050 +[19403] Forked 19051 +(19050) found +(19051) found +[19402] Forked 19052 +[19401] Forked 19053 +(19052) found +(19053) found +[19400] Forked 19054 +[19399] Forked 19055 +(19054) found +(19055) found +[19398] Forked 19056 +[19397] Forked 19057 +(19056) found +(19057) found +[19396] Forked 19058 +[19395] Forked 19059 +(19058) found +(19059) found +[19394] Forked 19060 +[19393] Forked 19061 +(19060) found +(19061) found +[19392] Forked 19062 +[19391] Forked 19063 +(19062) found +(19063) found +[19390] Forked 19064 +(19064) found +[19389] Forked 19065 +[19388] Forked 19066 +(19065) found +(19066) found +[19387] Forked 19067 +[19386] Forked 19068 +(19067) found +(19068) found +[19385] Forked 19069 +[19384] Forked 19070 +(19069) found +(19070) found +[19383] Forked 19071 +(19071) found +[19382] Forked 19072 +(19072) found +[19381] Forked 19073 +(19073) found +[19380] Forked 19074 +(19074) found +[19379] Forked 19075 +(19075) found +[19378] Forked 19076 +(19076) found +[19377] Forked 19077 +(19077) found +[19376] Forked 19078 +(19078) found +[19375] Forked 19079 +(19079) found +[19374] Forked 19080 +(19080) found +[19373] Forked 19081 +(19081) found +[19372] Forked 19082 +(19082) found +[19371] Forked 19084 +(19084) found +[19370] Forked 19085 +(19085) found +[19369] Forked 19086 +(19086) found +[19368] Forked 19087 +(19087) found +[19367] Forked 19088 +(19088) found +[19366] Forked 19089 +(19089) found +[19365] Forked 19090 +(19090) found +[19364] Forked 19091 +(19091) found +[19363] Forked 19092 +(19092) found +[19362] Forked 19093 +(19093) found +[19361] Forked 19094 +(19094) found +[19360] Forked 19097 +(19097) found +[19359] Forked 19098 +(19098) found +[19358] Forked 19099 +(19099) found +[19357] Forked 19100 +(19100) found +[19356] Forked 19102 +(19102) found +[19355] Forked 19104 +(19104) found +[19354] Forked 19105 +(19105) found +[19353] Forked 19106 +(19106) found +[19352] Forked 19107 +(19107) found +[19351] Forked 19108 +(19108) found +[19350] Forked 19109 +(19109) found +[19349] Forked 19110 +(19110) found +[19348] Forked 19111 +(19111) found +[19347] Forked 19112 +(19112) found +[19346] Forked 19113 +[19345] Forked 19114 +(19113) found +(19114) found +[19344] Forked 19115 +[19343] Forked 19116 +(19115) found +(19116) found +[19342] Forked 19117 +[19341] Forked 19118 +(19117) found +(19118) found +[19340] Forked 19119 +[19339] Forked 19120 +(19119) found +(19120) found +[19338] Forked 19122 +[19337] Forked 19123 +(19122) found +(19123) found +[19336] Forked 19124 +[19335] Forked 19125 +(19124) found +(19125) found +[19334] Forked 19126 +[19333] Forked 19127 +(19126) found +(19127) found +[19332] Forked 19128 +[19331] Forked 19129 +(19128) found +(19129) found +[19330] Forked 19130 +[19329] Forked 19131 +(19130) found +(19131) found +[19328] Forked 19132 +[19327] Forked 19133 +(19132) found +(19133) found +[19326] Forked 19134 +[19325] Forked 19135 +(19134) found +(19135) found +[19324] Forked 19136 +[19323] Forked 19137 +(19136) found +(19137) found +[19322] Forked 19138 +[19321] Forked 19139 +(19138) found +(19139) found +[19320] Forked 19140 +[19319] Forked 19141 +(19140) found +(19141) found +[19318] Forked 19142 +[19317] Forked 19143 +(19142) found +(19143) found +[19316] Forked 19144 +[19315] Forked 19145 +(19144) found +(19145) found +[19314] Forked 19146 +[19313] Forked 19147 +(19146) found +(19147) found +[19312] Forked 19148 +[19311] Forked 19149 +(19148) found +(19149) found +[19310] Forked 19150 +[19309] Forked 19151 +(19150) found +(19151) found +[19308] Forked 19152 +[19307] Forked 19153 +(19152) found +(19153) found +[19306] Forked 19154 +[19305] Forked 19155 +(19154) found +(19155) found +[19304] Forked 19156 +[19303] Forked 19157 +(19156) found +(19157) found +[19302] Forked 19158 +[19301] Forked 19159 +(19158) found +(19159) found +[19300] Forked 19160 +[19299] Forked 19161 +(19160) found +(19161) found +[19298] Forked 19162 +[19297] Forked 19163 +(19162) found +(19163) found +[19296] Forked 19164 +[19295] Forked 19165 +(19164) found +(19165) found +[19294] Forked 19166 +[19293] Forked 19167 +(19166) found +(19167) found +[19292] Forked 19168 +[19291] Forked 19169 +(19168) found +(19169) found +[19290] Forked 19170 +[19289] Forked 19171 +(19170) found +(19171) found +[19288] Forked 19172 +[19287] Forked 19173 +(19172) found +(19173) found +[19286] Forked 19174 +[19285] Forked 19175 +(19174) found +(19175) found +[19284] Forked 19176 +[19283] Forked 19177 +(19176) found +(19177) found +[19282] Forked 19178 +[19281] Forked 19179 +(19178) found +(19179) found +[19280] Forked 19180 +[19279] Forked 19181 +(19180) found +(19181) found +[19278] Forked 19182 +[19277] Forked 19183 +(19182) found +(19183) found +[19276] Forked 19184 +[19275] Forked 19186 +(19184) found +(19186) found +[19274] Forked 19187 +(19187) found +[19273] Forked 19188 +[19272] Forked 19189 +(19188) found +(19189) found +[19271] Forked 19191 +[19270] Forked 19192 +(19191) found +(19192) found +[19269] Forked 19193 +[19268] Forked 19194 +(19193) found +(19194) found +[19267] Forked 19195 +[19266] Forked 19196 +(19195) found +(19196) found +[19265] Forked 19197 +[19264] Forked 19198 +(19197) found +(19198) found +[19263] Forked 19199 +[19262] Forked 19200 +(19199) found +(19200) found +[19261] Forked 19201 +[19260] Forked 19202 +(19201) found +(19202) found +[19259] Forked 19203 +[19258] Forked 19204 +(19203) found +(19204) found +[19257] Forked 19205 +[19256] Forked 19206 +(19205) found +(19206) found +[19255] Forked 19207 +[19254] Forked 19208 +(19207) found +(19208) found +[19253] Forked 19209 +[19252] Forked 19210 +(19209) found +(19210) found +[19251] Forked 19211 +[19250] Forked 19212 +(19211) found +(19212) found +[19249] Forked 19213 +[19248] Forked 19214 +(19213) found +(19214) found +[19247] Forked 19215 +[19246] Forked 19216 +(19215) found +(19216) found +[19245] Forked 19217 +[19244] Forked 19218 +(19217) found +(19218) found +[19243] Forked 19219 +[19242] Forked 19220 +(19219) found +(19220) found +[19241] Forked 19221 +[19240] Forked 19222 +(19221) found +(19222) found +[19239] Forked 19223 +[19238] Forked 19224 +(19223) found +(19224) found +[19237] Forked 19225 +[19236] Forked 19226 +(19225) found +(19226) found +[19235] Forked 19227 +[19234] Forked 19228 +(19227) found +(19228) found +[19233] Forked 19229 +[19232] Forked 19230 +(19229) found +(19230) found +[19231] Forked 19231 +[19230] Forked 19232 +(19231) found +(19232) found +[19229] Forked 19233 +[19228] Forked 19234 +(19233) found +(19234) found +[19227] Forked 19235 +[19226] Forked 19236 +(19235) found +(19236) found +[19225] Forked 19237 +[19224] Forked 19238 +(19237) found +(19238) found +[19223] Forked 19239 +[19222] Forked 19240 +(19239) found +(19240) found +[19221] Forked 19241 +[19220] Forked 19242 +(19241) found +(19242) found +[19219] Forked 19243 +[19218] Forked 19244 +(19243) found +(19244) found +[19217] Forked 19245 +[19216] Forked 19246 +(19245) found +(19246) found +[19215] Forked 19247 +[19214] Forked 19248 +(19247) found +(19248) found +[19213] Forked 19249 +[19212] Forked 19250 +(19249) found +(19250) found +[19211] Forked 19251 +(19251) found +[19210] Forked 19252 +(19252) found +[19209] Forked 19253 +(19253) found +[19208] Forked 19254 +(19254) found +[19207] Forked 19255 +(19255) found +[19206] Forked 19256 +(19256) found +[19205] Forked 19257 +(19257) found +[19204] Forked 19258 +(19258) found +[19203] Forked 19259 +(19259) found +[19202] Forked 19260 +(19260) found +[19201] Forked 19261 +(19261) found +[19200] Forked 19262 +(19262) found +[19199] Forked 19263 +(19263) found +[19198] Forked 19264 +(19264) found +[19197] Forked 19265 +(19265) found +[19196] Forked 19266 +(19266) found +[19195] Forked 19267 +(19267) found +[19194] Forked 19268 +(19268) found +[19193] Forked 19269 +(19269) found +[19192] Forked 19270 +(19270) found +[19191] Forked 19271 +(19271) found +[19190] Forked 19272 +(19272) found +[19189] Forked 19273 +(19273) found +[19188] Forked 19274 +(19274) found +[19187] Forked 19275 +(19275) found +[19186] Forked 19276 +(19276) found +[19185] Forked 19277 +(19277) found +[19184] Forked 19278 +(19278) found +[19183] Forked 19279 +(19279) found +[19182] Forked 19280 +(19280) found +[19181] Forked 19281 +(19281) found +[19180] Forked 19282 +(19282) found +[19179] Forked 19283 +(19283) found +[19178] Forked 19284 +(19284) found +[19177] Forked 19285 +(19285) found +[19176] Forked 19286 +(19286) found +[19175] Forked 19287 +(19287) found +[19174] Forked 19288 +[19173] Forked 19289 +(19288) found +(19289) found +[19172] Forked 19290 +(19290) found +[19171] Forked 19291 +(19291) found +[19170] Forked 19292 +(19292) found +[19169] Forked 19293 +(19293) found +[19168] Forked 19294 +(19294) found +[19167] Forked 19295 +(19295) found +[19166] Forked 19296 +(19296) found +[19165] Forked 19297 +(19297) found +[19164] Forked 19298 +(19298) found +[19163] Forked 19299 +(19299) found +[19162] Forked 19300 +(19300) found +[19161] Forked 19301 +(19301) found +[19160] Forked 19302 +(19302) found +[19159] Forked 19303 +(19303) found +[19158] Forked 19304 +(19304) found +[19157] Forked 19305 +(19305) found +[19156] Forked 19306 +(19306) found +[19155] Forked 19307 +(19307) found +[19154] Forked 19308 +(19308) found +[19153] Forked 19309 +(19309) found +[19152] Forked 19310 +(19310) found +[19151] Forked 19311 +(19311) found +[19150] Forked 19312 +(19312) found +[19149] Forked 19313 +(19313) found +[19148] Forked 19314 +(19314) found +[19147] Forked 19315 +(19315) found +[19146] Forked 19316 +(19316) found +[19145] Forked 19317 +(19317) found +[19144] Forked 19318 +(19318) found +[19143] Forked 19319 +(19319) found +[19142] Forked 19320 +[19141] Forked 19321 +(19321) found +(19320) found +[19140] Forked 19322 +(19322) found +[19139] Forked 19323 +(19323) found +[19138] Forked 19324 +(19324) found +[19137] Forked 19325 +(19325) found +[19136] Forked 19326 +(19326) found +[19135] Forked 19327 +(19327) found +[19134] Forked 19328 +(19328) found +[19133] Forked 19329 +(19329) found +[19132] Forked 19330 +(19330) found +[19131] Forked 19331 +(19331) found +[19130] Forked 19332 +(19332) found +[19129] Forked 19333 +(19333) found +[19128] Forked 19334 +(19334) found +[19127] Forked 19335 +(19335) found +[19126] Forked 19336 +(19336) found +[19125] Forked 19337 +(19337) found +[19124] Forked 19338 +(19338) found +[19123] Forked 19339 +(19339) found +[19122] Forked 19340 +(19340) found +[19121] Forked 19341 +(19341) found +[19120] Forked 19342 +(19342) found +[19119] Forked 19343 +(19343) found +[19118] Forked 19344 +(19344) found +[19117] Forked 19345 +(19345) found +[19116] Forked 19346 +(19346) found +[19115] Forked 19347 +(19347) found +[19114] Forked 19348 +(19348) found +[19113] Forked 19349 +(19349) found +[19112] Forked 19352 +(19352) found +[19111] Forked 19353 +(19353) found +[19110] Forked 19354 +(19354) found +[19109] Forked 19355 +(19355) found +[19108] Forked 19356 +(19356) found +[19107] Forked 19357 +(19357) found +[19106] Forked 19359 +(19359) found +[19105] Forked 19360 +(19360) found +[19104] Forked 19361 +(19361) found +[19103] Forked 19362 +(19362) found +[19102] Forked 19363 +(19363) found +[19101] Forked 19364 +(19364) found +[19100] Forked 19365 +(19365) found +[19099] Forked 19366 +(19366) found +[19098] Forked 19367 +(19367) found +[19097] Forked 19368 +(19368) found +[19096] Forked 19369 +(19369) found +[19095] Forked 19370 +(19370) found +[19094] Forked 19371 +(19371) found +[19093] Forked 19372 +(19372) found +[19092] Forked 19373 +(19373) found +[19091] Forked 19374 +(19374) found +[19090] Forked 19375 +(19375) found +[19089] Forked 19376 +(19376) found +[19088] Forked 19377 +(19377) found +[19087] Forked 19378 +(19378) found +[19086] Forked 19379 +(19379) found +[19085] Forked 19380 +(19380) found +[19084] Forked 19381 +(19381) found +[19083] Forked 19382 +(19382) found +[19082] Forked 19383 +(19383) found +[19081] Forked 19384 +(19384) found +[19080] Forked 19385 +(19385) found +[19079] Forked 19386 +(19386) found +[19078] Forked 19387 +(19387) found +[19077] Forked 19388 +(19388) found +[19076] Forked 19389 +(19389) found +[19075] Forked 19390 +(19390) found +[19074] Forked 19391 +(19391) found +[19073] Forked 19392 +(19392) found +[19072] Forked 19393 +(19393) found +[19071] Forked 19394 +(19394) found +[19070] Forked 19395 +(19395) found +[19069] Forked 19396 +(19396) found +[19068] Forked 19397 +[19067] Forked 19398 +(19397) found +(19398) found +[19066] Forked 19399 +[19065] Forked 19400 +(19399) found +(19400) found +[19064] Forked 19401 +[19063] Forked 19402 +(19401) found +(19402) found +[19062] Forked 19403 +[19061] Forked 19404 +(19403) found +(19404) found +[19060] Forked 19405 +[19059] Forked 19406 +(19405) found +(19406) found +[19058] Forked 19407 +[19057] Forked 19408 +(19407) found +(19408) found +[19056] Forked 19409 +[19055] Forked 19410 +(19409) found +(19410) found +[19054] Forked 19411 +[19053] Forked 19412 +(19411) found +(19412) found +[19052] Forked 19413 +[19051] Forked 19414 +(19413) found +(19414) found +[19050] Forked 19415 +[19049] Forked 19416 +(19415) found +(19416) found +[19048] Forked 19417 +[19047] Forked 19418 +(19417) found +(19418) found +[19046] Forked 19419 +[19045] Forked 19420 +(19419) found +(19420) found +[19044] Forked 19421 +[19043] Forked 19422 +(19421) found +(19422) found +[19042] Forked 19423 +[19041] Forked 19424 +(19423) found +(19424) found +[19040] Forked 19425 +[19039] Forked 19426 +(19425) found +(19426) found +[19038] Forked 19427 +[19037] Forked 19428 +(19427) found +(19428) found +[19036] Forked 19429 +(19429) found +[19035] Forked 19430 +(19430) found +[19034] Forked 19431 +(19431) found +[19033] Forked 19432 +(19432) found +[19032] Forked 19433 +(19433) found +[19031] Forked 19434 +(19434) found +[19030] Forked 19435 +(19435) found +[19029] Forked 19436 +(19436) found +[19028] Forked 19437 +(19437) found +[19027] Forked 19438 +(19438) found +[19026] Forked 19439 +(19439) found +[19025] Forked 19440 +(19440) found +[19024] Forked 19441 +(19441) found +[19023] Forked 19442 +(19442) found +[19022] Forked 19443 +(19443) found +[19021] Forked 19444 +(19444) found +[19020] Forked 19445 +(19445) found +[19019] Forked 19446 +(19446) found +[19018] Forked 19447 +(19447) found +[19017] Forked 19448 +(19448) found +[19016] Forked 19449 +(19449) found +[19015] Forked 19450 +(19450) found +[19014] Forked 19451 +(19451) found +[19013] Forked 19452 +(19452) found +[19012] Forked 19453 +(19453) found +[19011] Forked 19454 +(19454) found +[19010] Forked 19455 +[19009] Forked 19456 +(19455) found +(19456) found +[19008] Forked 19457 +[19007] Forked 19458 +(19457) found +(19458) found +[19006] Forked 19459 +[19005] Forked 19460 +(19459) found +(19460) found +[19004] Forked 19461 +[19003] Forked 19462 +(19461) found +(19462) found +[19002] Forked 19463 +[19001] Forked 19464 +(19463) found +(19464) found +[19000] Forked 19465 +[18999] Forked 19466 +(19465) found +(19466) found +[18998] Forked 19467 +[18997] Forked 19468 +(19467) found +(19468) found +[18996] Forked 19469 +[18995] Forked 19470 +(19469) found +(19470) found +[18994] Forked 19471 +[18993] Forked 19472 +(19471) found +(19472) found +[18992] Forked 19473 +[18991] Forked 19474 +(19473) found +(19474) found +[18990] Forked 19475 +[18989] Forked 19476 +(19475) found +(19476) found +[18988] Forked 19477 +[18987] Forked 19478 +(19477) found +(19478) found +[18986] Forked 19479 +[18985] Forked 19480 +(19479) found +(19480) found +[18984] Forked 19481 +[18983] Forked 19482 +(19481) found +(19482) found +[18982] Forked 19483 +[18981] Forked 19484 +(19483) found +(19484) found +[18980] Forked 19485 +[18979] Forked 19486 +(19485) found +(19486) found +[18978] Forked 19487 +[18977] Forked 19488 +(19487) found +(19488) found +[18976] Forked 19489 +[18975] Forked 19490 +(19489) found +(19490) found +[18974] Forked 19491 +[18973] Forked 19492 +(19491) found +(19492) found +[18972] Forked 19493 +[18971] Forked 19494 +(19493) found +(19494) found +[18970] Forked 19495 +(19495) found +[18969] Forked 19496 +[18968] Forked 19497 +(19496) found +(19497) found +[18967] Forked 19498 +[18966] Forked 19499 +(19498) found +(19499) found +[18965] Forked 19500 +(19500) found +[18964] Forked 19501 +[18963] Forked 19502 +(19501) found +(19502) found +[18962] Forked 19503 +[18961] Forked 19504 +(19503) found +(19504) found +[18960] Forked 19505 +[18959] Forked 19506 +(19505) found +(19506) found +[18958] Forked 19507 +[18957] Forked 19508 +(19507) found +(19508) found +[18956] Forked 19509 +[18955] Forked 19510 +(19509) found +(19510) found +[18954] Forked 19511 +[18953] Forked 19512 +(19511) found +(19512) found +[18952] Forked 19513 +[18951] Forked 19514 +(19513) found +(19514) found +[18950] Forked 19515 +[18949] Forked 19516 +(19515) found +(19516) found +[18948] Forked 19517 +[18947] Forked 19518 +(19517) found +(19518) found +[18946] Forked 19519 +[18945] Forked 19520 +(19519) found +(19520) found +[18944] Forked 19521 +[18943] Forked 19522 +(19521) found +(19522) found +[18942] Forked 19523 +[18941] Forked 19524 +(19523) found +(19524) found +[18940] Forked 19525 +[18939] Forked 19526 +(19525) found +(19526) found +[18938] Forked 19527 +[18937] Forked 19528 +(19527) found +(19528) found +[18936] Forked 19529 +[18935] Forked 19530 +(19529) found +(19530) found +[18934] Forked 19531 +[18933] Forked 19532 +(19531) found +(19532) found +[18932] Forked 19533 +[18931] Forked 19534 +(19533) found +(19534) found +[18930] Forked 19535 +[18929] Forked 19536 +(19535) found +(19536) found +[18928] Forked 19537 +[18927] Forked 19538 +(19537) found +(19538) found +[18926] Forked 19539 +[18925] Forked 19540 +(19539) found +(19540) found +[18924] Forked 19541 +[18923] Forked 19542 +(19541) found +(19542) found +[18922] Forked 19543 +[18921] Forked 19544 +(19543) found +(19544) found +[18920] Forked 19545 +[18919] Forked 19546 +(19545) found +(19546) found +[18918] Forked 19547 +[18917] Forked 19548 +(19547) found +(19548) found +[18916] Forked 19549 +[18915] Forked 19550 +(19549) found +(19550) found +[18914] Forked 19551 +[18913] Forked 19552 +(19551) found +(19552) found +[18912] Forked 19553 +[18911] Forked 19554 +(19553) found +(19554) found +[18910] Forked 19555 +[18909] Forked 19556 +(19555) found +(19556) found +[18908] Forked 19557 +[18907] Forked 19558 +(19557) found +(19558) found +[18906] Forked 19559 +[18905] Forked 19560 +(19559) found +(19560) found +[18904] Forked 19561 +[18903] Forked 19562 +(19561) found +(19562) found +[18902] Forked 19563 +[18901] Forked 19564 +(19563) found +(19564) found +[18900] Forked 19565 +[18899] Forked 19566 +(19565) found +(19566) found +[18898] Forked 19567 +[18897] Forked 19568 +(19567) found +(19568) found +[18896] Forked 19569 +[18895] Forked 19570 +(19569) found +(19570) found +[18894] Forked 19571 +[18893] Forked 19572 +(19571) found +(19572) found +[18892] Forked 19573 +[18891] Forked 19574 +(19573) found +(19574) found +[18890] Forked 19575 +[18889] Forked 19576 +(19575) found +(19576) found +[18888] Forked 19577 +[18887] Forked 19578 +(19577) found +(19578) found +[18886] Forked 19579 +[18885] Forked 19580 +(19579) found +(19580) found +[18884] Forked 19581 +[18883] Forked 19582 +(19581) found +(19582) found +[18882] Forked 19583 +[18881] Forked 19584 +(19583) found +(19584) found +[18880] Forked 19585 +[18879] Forked 19586 +(19585) found +(19586) found +[18878] Forked 19587 +[18877] Forked 19588 +(19587) found +(19588) found +[18876] Forked 19589 +[18875] Forked 19590 +(19589) found +(19590) found +[18874] Forked 19591 +[18873] Forked 19592 +(19591) found +(19592) found +[18872] Forked 19593 +[18871] Forked 19594 +(19593) found +(19594) found +[18870] Forked 19595 +[18869] Forked 19596 +(19595) found +(19596) found +[18868] Forked 19597 +[18867] Forked 19598 +(19597) found +(19598) found +[18866] Forked 19599 +[18865] Forked 19600 +(19599) found +(19600) found +[18864] Forked 19601 +[18863] Forked 19602 +(19601) found +(19602) found +[18862] Forked 19603 +[18861] Forked 19604 +(19603) found +(19604) found +[18860] Forked 19605 +[18859] Forked 19606 +(19605) found +(19606) found +[18858] Forked 19607 +[18857] Forked 19608 +(19607) found +(19608) found +[18856] Forked 19609 +[18855] Forked 19610 +(19609) found +(19610) found +[18854] Forked 19611 +[18853] Forked 19612 +(19611) found +(19612) found +[18852] Forked 19613 +[18851] Forked 19614 +(19613) found +(19614) found +[18850] Forked 19615 +[18849] Forked 19616 +(19615) found +(19616) found +[18848] Forked 19617 +[18847] Forked 19618 +(19617) found +(19618) found +[18846] Forked 19619 +[18845] Forked 19620 +(19619) found +(19620) found +[18844] Forked 19621 +[18843] Forked 19622 +(19621) found +(19622) found +[18842] Forked 19623 +[18841] Forked 19624 +(19623) found +(19624) found +[18840] Forked 19625 +[18839] Forked 19626 +(19625) found +(19626) found +[18838] Forked 19627 +[18837] Forked 19628 +(19627) found +(19628) found +[18836] Forked 19629 +[18835] Forked 19630 +(19629) found +(19630) found +[18834] Forked 19631 +[18833] Forked 19632 +(19631) found +(19632) found +[18832] Forked 19633 +[18831] Forked 19634 +(19633) found +(19634) found +[18830] Forked 19635 +[18829] Forked 19636 +(19635) found +(19636) found +[18828] Forked 19637 +[18827] Forked 19638 +(19637) found +(19638) found +[18826] Forked 19639 +[18825] Forked 19640 +(19639) found +(19640) found +[18824] Forked 19641 +[18823] Forked 19642 +(19641) found +(19642) found +[18822] Forked 19643 +[18821] Forked 19644 +(19643) found +(19644) found +[18820] Forked 19645 +[18819] Forked 19646 +(19645) found +(19646) found +[18818] Forked 19647 +[18817] Forked 19648 +(19647) found +(19648) found +[18816] Forked 19649 +[18815] Forked 19650 +(19649) found +(19650) found +[18814] Forked 19651 +[18813] Forked 19652 +(19651) found +(19652) found +[18812] Forked 19653 +[18811] Forked 19654 +(19653) found +(19654) found +[18810] Forked 19655 +[18809] Forked 19656 +(19655) found +(19656) found +[18808] Forked 19657 +[18807] Forked 19658 +(19657) found +(19658) found +[18806] Forked 19659 +[18805] Forked 19660 +(19659) found +(19660) found +[18804] Forked 19661 +[18803] Forked 19662 +(19661) found +(19662) found +[18802] Forked 19663 +[18801] Forked 19664 +(19663) found +(19664) found +[18800] Forked 19665 +[18799] Forked 19666 +(19665) found +(19666) found +[18798] Forked 19667 +[18797] Forked 19668 +(19667) found +(19668) found +[18796] Forked 19669 +[18795] Forked 19670 +(19669) found +(19670) found +[18794] Forked 19671 +[18793] Forked 19672 +(19671) found +(19672) found +[18792] Forked 19673 +[18791] Forked 19674 +(19673) found +(19674) found +[18790] Forked 19675 +[18789] Forked 19676 +(19675) found +(19676) found +[18788] Forked 19677 +[18787] Forked 19678 +(19677) found +(19678) found +[18786] Forked 19679 +[18785] Forked 19680 +(19679) found +(19680) found +[18784] Forked 19681 +(19681) found +[18783] Forked 19682 +(19682) found +[18782] Forked 19683 +(19683) found +[18781] Forked 19684 +(19684) found +[18780] Forked 19685 +(19685) found +[18779] Forked 19686 +(19686) found +[18778] Forked 19687 +(19687) found +[18777] Forked 19688 +(19688) found +[18776] Forked 19689 +(19689) found +[18775] Forked 19690 +(19690) found +[18774] Forked 19691 +(19691) found +[18773] Forked 19692 +(19692) found +[18772] Forked 19693 +(19693) found +[18771] Forked 19694 +(19694) found +[18770] Forked 19695 +(19695) found +[18769] Forked 19696 +(19696) found +[18768] Forked 19697 +(19697) found +[18767] Forked 19698 +(19698) found +[18766] Forked 19699 +(19699) found +[18765] Forked 19700 +(19700) found +[18764] Forked 19701 +(19701) found +[18763] Forked 19702 +(19702) found +[18762] Forked 19703 +(19703) found +[18761] Forked 19704 +(19704) found +[18760] Forked 19705 +(19705) found +[18759] Forked 19706 +(19706) found +[18758] Forked 19707 +(19707) found +[18757] Forked 19708 +(19708) found +[18756] Forked 19709 +(19709) found +[18755] Forked 19710 +(19710) found +[18754] Forked 19711 +(19711) found +[18753] Forked 19712 +(19712) found +[18752] Forked 19713 +(19713) found +[18751] Forked 19714 +(19714) found +[18750] Forked 19715 +(19715) found +[18749] Forked 19716 +(19716) found +[18748] Forked 19717 +[18747] Forked 19718 +(19717) found +(19718) found +[18746] Forked 19719 +[18745] Forked 19720 +(19719) found +(19720) found +[18744] Forked 19721 +[18743] Forked 19722 +(19721) found +(19722) found +[18742] Forked 19723 +[18741] Forked 19724 +(19723) found +(19724) found +[18740] Forked 19725 +[18739] Forked 19726 +(19725) found +(19726) found +[18738] Forked 19727 +[18737] Forked 19728 +(19727) found +(19728) found +[18736] Forked 19729 +[18735] Forked 19730 +(19729) found +(19730) found +[18734] Forked 19731 +[18733] Forked 19732 +(19731) found +(19732) found +[18732] Forked 19733 +[18731] Forked 19734 +(19733) found +(19734) found +[18730] Forked 19735 +[18729] Forked 19736 +(19735) found +(19736) found +[18728] Forked 19737 +[18727] Forked 19738 +(19737) found +(19738) found +[18726] Forked 19739 +[18725] Forked 19740 +(19739) found +(19740) found +[18724] Forked 19741 +[18723] Forked 19742 +(19741) found +(19742) found +[18722] Forked 19743 +[18721] Forked 19744 +(19743) found +(19744) found +[18720] Forked 19745 +[18719] Forked 19746 +(19745) found +(19746) found +[18718] Forked 19747 +[18717] Forked 19748 +(19747) found +(19748) found +[18716] Forked 19749 +[18715] Forked 19750 +(19749) found +(19750) found +[18714] Forked 19751 +[18713] Forked 19752 +(19751) found +(19752) found +[18712] Forked 19753 +[18711] Forked 19755 +(19753) found +(19755) found +[18710] Forked 19756 +(19756) found +[18709] Forked 19757 +(19757) found +[18708] Forked 19758 +(19758) found +[18707] Forked 19759 +(19759) found +[18706] Forked 19760 +(19760) found +[18705] Forked 19761 +(19761) found +[18704] Forked 19762 +(19762) found +[18703] Forked 19763 +(19763) found +[18702] Forked 19764 +(19764) found +[18701] Forked 19765 +(19765) found +[18700] Forked 19766 +(19766) found +[18699] Forked 19767 +(19767) found +[18698] Forked 19768 +(19768) found +[18697] Forked 19769 +(19769) found +[18696] Forked 19770 +(19770) found +[18695] Forked 19771 +(19771) found +[18694] Forked 19772 +(19772) found +[18693] Forked 19773 +(19773) found +[18692] Forked 19774 +(19774) found +[18691] Forked 19775 +(19775) found +[18690] Forked 19776 +(19776) found +[18689] Forked 19777 +(19777) found +[18688] Forked 19778 +(19778) found +[18687] Forked 19779 +(19779) found +[18686] Forked 19780 +(19780) found +[18685] Forked 19781 +(19781) found +[18684] Forked 19782 +(19782) found +[18683] Forked 19783 +(19783) found +[18682] Forked 19784 +(19784) found +[18681] Forked 19785 +(19785) found +[18680] Forked 19786 +(19786) found +[18679] Forked 19787 +(19787) found +[18678] Forked 19788 +(19788) found +[18677] Forked 19789 +(19789) found +[18676] Forked 19790 +(19790) found +[18675] Forked 19791 +(19791) found +[18674] Forked 19792 +(19792) found +[18673] Forked 19793 +(19793) found +[18672] Forked 19794 +(19794) found +[18671] Forked 19795 +(19795) found +[18670] Forked 19796 +(19796) found +[18669] Forked 19797 +[18668] Forked 19798 +(19797) found +(19798) found +[18667] Forked 19799 +[18666] Forked 19800 +(19799) found +(19800) found +[18665] Forked 19801 +[18664] Forked 19802 +(19801) found +(19802) found +[18663] Forked 19803 +[18662] Forked 19804 +(19803) found +(19804) found +[18661] Forked 19805 +[18660] Forked 19806 +(19805) found +(19806) found +[18659] Forked 19807 +[18658] Forked 19808 +(19807) found +(19808) found +[18657] Forked 19809 +[18656] Forked 19810 +(19809) found +(19810) found +[18655] Forked 19811 +[18654] Forked 19812 +(19811) found +(19812) found +[18653] Forked 19813 +[18652] Forked 19814 +(19813) found +(19814) found +[18651] Forked 19815 +[18650] Forked 19816 +(19815) found +(19816) found +[18649] Forked 19817 +[18648] Forked 19818 +(19817) found +(19818) found +[18647] Forked 19819 +[18646] Forked 19820 +(19819) found +(19820) found +[18645] Forked 19821 +[18644] Forked 19822 +(19821) found +(19822) found +[18643] Forked 19823 +[18642] Forked 19824 +(19823) found +(19824) found +[18641] Forked 19825 +[18640] Forked 19826 +(19825) found +(19826) found +[18639] Forked 19827 +[18638] Forked 19828 +(19827) found +(19828) found +[18637] Forked 19829 +[18636] Forked 19830 +(19829) found +(19830) found +[18635] Forked 19831 +[18634] Forked 19832 +(19831) found +(19832) found +[18633] Forked 19833 +[18632] Forked 19834 +(19833) found +(19834) found +[18631] Forked 19835 +[18630] Forked 19836 +(19835) found +(19836) found +[18629] Forked 19837 +[18628] Forked 19838 +(19837) found +(19838) found +[18627] Forked 19839 +[18626] Forked 19840 +(19839) found +(19840) found +[18625] Forked 19841 +[18624] Forked 19842 +(19841) found +(19842) found +[18623] Forked 19843 +[18622] Forked 19844 +(19843) found +(19844) found +[18621] Forked 19845 +(19845) found +[18620] Forked 19846 +(19846) found +[18619] Forked 19847 +(19847) found +[18618] Forked 19848 +(19848) found +[18617] Forked 19849 +(19849) found +[18616] Forked 19850 +(19850) found +[18615] Forked 19851 +(19851) found +[18614] Forked 19852 +(19852) found +[18613] Forked 19853 +(19853) found +[18612] Forked 19854 +(19854) found +[18611] Forked 19855 +(19855) found +[18610] Forked 19856 +(19856) found +[18609] Forked 19857 +(19857) found +[18608] Forked 19858 +(19858) found +[18607] Forked 19859 +(19859) found +[18606] Forked 19860 +(19860) found +[18605] Forked 19861 +(19861) found +[18604] Forked 19862 +(19862) found +[18603] Forked 19863 +(19863) found +[18602] Forked 19864 +(19864) found +[18601] Forked 19865 +(19865) found +[18600] Forked 19866 +(19866) found +[18599] Forked 19867 +(19867) found +[18598] Forked 19868 +(19868) found +[18597] Forked 19869 +(19869) found +[18596] Forked 19870 +(19870) found +[18595] Forked 19871 +(19871) found +[18594] Forked 19872 +(19872) found +[18593] Forked 19873 +(19873) found +[18592] Forked 19874 +(19874) found +[18591] Forked 19875 +(19875) found +[18590] Forked 19876 +(19876) found +[18589] Forked 19877 +(19877) found +[18588] Forked 19878 +(19878) found +[18587] Forked 19879 +[18586] Forked 19880 +(19879) found +(19880) found +[18585] Forked 19881 +[18584] Forked 19882 +(19881) found +(19882) found +[18583] Forked 19883 +[18582] Forked 19884 +(19883) found +(19884) found +[18581] Forked 19885 +[18580] Forked 19886 +(19885) found +(19886) found +[18579] Forked 19887 +[18578] Forked 19888 +(19887) found +(19888) found +[18577] Forked 19889 +[18576] Forked 19890 +(19889) found +(19890) found +[18575] Forked 19891 +[18574] Forked 19892 +(19891) found +(19892) found +[18573] Forked 19893 +[18572] Forked 19894 +(19893) found +(19894) found +[18571] Forked 19895 +[18570] Forked 19896 +(19895) found +(19896) found +[18569] Forked 19897 +[18568] Forked 19898 +(19897) found +(19898) found +[18567] Forked 19899 +[18566] Forked 19900 +(19899) found +(19900) found +[18565] Forked 19901 +[18564] Forked 19902 +(19901) found +(19902) found +[18563] Forked 19903 +[18562] Forked 19904 +(19903) found +(19904) found +[18561] Forked 19905 +[18560] Forked 19906 +(19905) found +(19906) found +[18559] Forked 19907 +[18558] Forked 19908 +(19907) found +(19908) found +[18557] Forked 19909 +[18556] Forked 19910 +(19909) found +(19910) found +[18555] Forked 19911 +[18554] Forked 19912 +(19911) found +(19912) found +[18553] Forked 19913 +[18552] Forked 19914 +(19913) found +(19914) found +[18551] Forked 19915 +[18550] Forked 19916 +(19915) found +(19916) found +[18549] Forked 19917 +[18548] Forked 19918 +(19917) found +(19918) found +[18547] Forked 19919 +[18546] Forked 19920 +(19919) found +(19920) found +[18545] Forked 19921 +[18544] Forked 19922 +(19921) found +(19922) found +[18543] Forked 19923 +[18542] Forked 19924 +(19923) found +(19924) found +[18541] Forked 19925 +[18540] Forked 19926 +(19925) found +(19926) found +[18539] Forked 19927 +[18538] Forked 19928 +(19927) found +(19928) found +[18537] Forked 19929 +[18536] Forked 19930 +(19929) found +(19930) found +[18535] Forked 19931 +[18534] Forked 19932 +(19931) found +(19932) found +[18533] Forked 19933 +[18532] Forked 19934 +(19933) found +(19934) found +[18531] Forked 19935 +[18530] Forked 19936 +(19935) found +(19936) found +[18529] Forked 19937 +[18528] Forked 19938 +(19937) found +(19938) found +[18527] Forked 19939 +[18526] Forked 19940 +(19939) found +(19940) found +[18525] Forked 19941 +[18524] Forked 19942 +(19941) found +(19942) found +[18523] Forked 19943 +[18522] Forked 19944 +(19943) found +(19944) found +[18521] Forked 19945 +[18520] Forked 19946 +(19945) found +(19946) found +[18519] Forked 19947 +[18518] Forked 19948 +(19947) found +(19948) found +[18517] Forked 19949 +[18516] Forked 19950 +(19949) found +(19950) found +[18515] Forked 19951 +[18514] Forked 19952 +(19951) found +(19952) found +[18513] Forked 19953 +[18512] Forked 19954 +(19953) found +(19954) found +[18511] Forked 19955 +[18510] Forked 19956 +(19955) found +(19956) found +[18509] Forked 19957 +[18508] Forked 19958 +(19957) found +(19958) found +[18507] Forked 19959 +[18506] Forked 19960 +(19959) found +(19960) found +[18505] Forked 19961 +[18504] Forked 19962 +(19961) found +(19962) found +[18503] Forked 19963 +[18502] Forked 19964 +(19963) found +(19964) found +[18501] Forked 19965 +[18500] Forked 19966 +(19965) found +(19966) found +[18499] Forked 19967 +[18498] Forked 19968 +(19967) found +(19968) found +[18497] Forked 19969 +[18496] Forked 19970 +(19969) found +(19970) found +[18495] Forked 19971 +(19971) found +[18494] Forked 19972 +(19972) found +[18493] Forked 19973 +(19973) found +[18492] Forked 19974 +(19974) found +[18491] Forked 19975 +(19975) found +[18490] Forked 19976 +(19976) found +[18489] Forked 19977 +(19977) found +[18488] Forked 19978 +(19978) found +[18487] Forked 19979 +(19979) found +[18486] Forked 19980 +(19980) found +[18485] Forked 19981 +(19981) found +[18484] Forked 19982 +(19982) found +[18483] Forked 19983 +(19983) found +[18482] Forked 19984 +(19984) found +[18481] Forked 19985 +(19985) found +[18480] Forked 19986 +(19986) found +[18479] Forked 19987 +(19987) found +[18478] Forked 19988 +(19988) found +[18477] Forked 19989 +(19989) found +[18476] Forked 19990 +(19990) found +[18475] Forked 19991 +(19991) found +[18474] Forked 19992 +(19992) found +[18473] Forked 19993 +(19993) found +[18472] Forked 19994 +(19994) found +[18471] Forked 19995 +(19995) found +[18470] Forked 19996 +(19996) found +[18469] Forked 19997 +(19997) found +[18468] Forked 19998 +(19998) found +[18467] Forked 19999 +(19999) found +[18466] Forked 20000 +(20000) found +[18465] Forked 20001 +(20001) found +[18464] Forked 20002 +(20002) found +[18463] Forked 20003 +(20003) found +[18462] Forked 20004 +(20004) found +[18461] Forked 20005 +(20005) found +[18460] Forked 20006 +(20006) found +[18459] Forked 20007 +(20007) found +[18458] Forked 20008 +[18457] Forked 20009 +(20008) found +(20009) found +[18456] Forked 20010 +[18455] Forked 20011 +(20010) found +(20011) found +[18454] Forked 20012 +[18453] Forked 20014 +(20012) found +(20014) found +[18452] Forked 20015 +(20015) found +[18451] Forked 20016 +(20016) found +[18450] Forked 20017 +(20017) found +[18449] Forked 20018 +(20018) found +[18448] Forked 20019 +(20019) found +[18447] Forked 20020 +(20020) found +[18446] Forked 20021 +(20021) found +[18445] Forked 20022 +(20022) found +[18444] Forked 20023 +(20023) found +[18443] Forked 20024 +(20024) found +[18442] Forked 20025 +(20025) found +[18441] Forked 20026 +(20026) found +[18440] Forked 20027 +(20027) found +[18439] Forked 20028 +(20028) found +[18438] Forked 20029 +(20029) found +[18437] Forked 20030 +(20030) found +[18436] Forked 20031 +(20031) found +[18435] Forked 20032 +(20032) found +[18434] Forked 20033 +(20033) found +[18433] Forked 20034 +(20034) found +[18432] Forked 20035 +(20035) found +[18431] Forked 20036 +(20036) found +[18430] Forked 20037 +(20037) found +[18429] Forked 20038 +(20038) found +[18428] Forked 20039 +(20039) found +[18427] Forked 20040 +(20040) found +[18426] Forked 20041 +(20041) found +[18425] Forked 20042 +(20042) found +[18424] Forked 20043 +(20043) found +[18423] Forked 20044 +(20044) found +[18422] Forked 20045 +(20045) found +[18421] Forked 20046 +(20046) found +[18420] Forked 20047 +(20047) found +[18419] Forked 20048 +(20048) found +[18418] Forked 20049 +(20049) found +[18417] Forked 20050 +(20050) found +[18416] Forked 20051 +(20051) found +[18415] Forked 20052 +(20052) found +[18414] Forked 20053 +(20053) found +[18413] Forked 20054 +(20054) found +[18412] Forked 20055 +(20055) found +[18411] Forked 20056 +(20056) found +[18410] Forked 20057 +(20057) found +[18409] Forked 20058 +(20058) found +[18408] Forked 20059 +(20059) found +[18407] Forked 20060 +(20060) found +[18406] Forked 20061 +(20061) found +[18405] Forked 20062 +(20062) found +[18404] Forked 20063 +(20063) found +[18403] Forked 20064 +(20064) found +[18402] Forked 20065 +(20065) found +[18401] Forked 20066 +(20066) found +[18400] Forked 20067 +(20067) found +[18399] Forked 20068 +(20068) found +[18398] Forked 20069 +(20069) found +[18397] Forked 20070 +(20070) found +[18396] Forked 20071 +(20071) found +[18395] Forked 20072 +(20072) found +[18394] Forked 20073 +(20073) found +[18393] Forked 20074 +(20074) found +[18392] Forked 20075 +(20075) found +[18391] Forked 20076 +(20076) found +[18390] Forked 20077 +(20077) found +[18389] Forked 20078 +(20078) found +[18388] Forked 20079 +(20079) found +[18387] Forked 20080 +(20080) found +[18386] Forked 20081 +[18385] Forked 20082 +(20081) found +(20082) found +[18384] Forked 20083 +[18383] Forked 20084 +(20083) found +(20084) found +[18382] Forked 20085 +[18381] Forked 20086 +(20085) found +(20086) found +[18380] Forked 20087 +(20087) found +[18379] Forked 20088 +(20088) found +[18378] Forked 20089 +(20089) found +[18377] Forked 20090 +(20090) found +[18376] Forked 20091 +(20091) found +[18375] Forked 20092 +(20092) found +[18374] Forked 20093 +(20093) found +[18373] Forked 20094 +(20094) found +[18372] Forked 20095 +(20095) found +[18371] Forked 20096 +(20096) found +[18370] Forked 20097 +(20097) found +[18369] Forked 20098 +(20098) found +[18368] Forked 20099 +(20099) found +[18367] Forked 20100 +(20100) found +[18366] Forked 20101 +(20101) found +[18365] Forked 20102 +(20102) found +[18364] Forked 20103 +(20103) found +[18363] Forked 20104 +(20104) found +[18362] Forked 20105 +(20105) found +[18361] Forked 20106 +(20106) found +[18360] Forked 20107 +(20107) found +[18359] Forked 20108 +(20108) found +[18358] Forked 20109 +(20109) found +[18357] Forked 20110 +(20110) found +[18356] Forked 20111 +(20111) found +[18355] Forked 20112 +(20112) found +[18354] Forked 20113 +(20113) found +[18353] Forked 20114 +(20114) found +[18352] Forked 20115 +(20115) found +[18351] Forked 20116 +(20116) found +[18350] Forked 20117 +(20117) found +[18349] Forked 20118 +(20118) found +[18348] Forked 20119 +(20119) found +[18347] Forked 20120 +(20120) found +[18346] Forked 20121 +(20121) found +[18345] Forked 20122 +(20122) found +[18344] Forked 20123 +(20123) found +[18343] Forked 20124 +(20124) found +[18342] Forked 20125 +(20125) found +[18341] Forked 20126 +(20126) found +[18340] Forked 20127 +(20127) found +[18339] Forked 20128 +(20128) found +[18338] Forked 20129 +(20129) found +[18337] Forked 20130 +(20130) found +[18336] Forked 20131 +(20131) found +[18335] Forked 20132 +(20132) found +[18334] Forked 20133 +(20133) found +[18333] Forked 20134 +(20134) found +[18332] Forked 20135 +(20135) found +[18331] Forked 20136 +(20136) found +[18330] Forked 20137 +(20137) found +[18329] Forked 20138 +(20138) found +[18328] Forked 20139 +(20139) found +[18327] Forked 20140 +(20140) found +[18326] Forked 20141 +(20141) found +[18325] Forked 20142 +(20142) found +[18324] Forked 20143 +(20143) found +[18323] Forked 20144 +(20144) found +[18322] Forked 20145 +(20145) found +[18321] Forked 20146 +(20146) found +[18320] Forked 20147 +(20147) found +[18319] Forked 20148 +(20148) found +[18318] Forked 20149 +(20149) found +[18317] Forked 20150 +(20150) found +[18316] Forked 20151 +(20151) found +[18315] Forked 20152 +(20152) found +[18314] Forked 20153 +(20153) found +[18313] Forked 20154 +(20154) found +[18312] Forked 20155 +(20155) found +[18311] Forked 20156 +(20156) found +[18310] Forked 20157 +(20157) found +[18309] Forked 20158 +(20158) found +[18308] Forked 20159 +(20159) found +[18307] Forked 20160 +(20160) found +[18306] Forked 20161 +(20161) found +[18305] Forked 20162 +(20162) found +[18304] Forked 20163 +(20163) found +[18303] Forked 20164 +(20164) found +[18302] Forked 20165 +(20165) found +[18301] Forked 20166 +(20166) found +[18300] Forked 20167 +(20167) found +[18299] Forked 20168 +(20168) found +[18298] Forked 20169 +(20169) found +[18297] Forked 20170 +(20170) found +[18296] Forked 20171 +(20171) found +[18295] Forked 20172 +(20172) found +[18294] Forked 20173 +(20173) found +[18293] Forked 20174 +(20174) found +[18292] Forked 20175 +(20175) found +[18291] Forked 20176 +(20176) found +[18290] Forked 20177 +(20177) found +[18289] Forked 20178 +(20178) found +[18288] Forked 20179 +(20179) found +[18287] Forked 20180 +(20180) found +[18286] Forked 20181 +(20181) found +[18285] Forked 20182 +(20182) found +[18284] Forked 20183 +(20183) found +[18283] Forked 20184 +(20184) found +[18282] Forked 20185 +(20185) found +[18281] Forked 20186 +(20186) found +[18280] Forked 20187 +(20187) found +[18279] Forked 20188 +(20188) found +[18278] Forked 20189 +[18277] Forked 20190 +(20189) found +(20190) found +[18276] Forked 20191 +[18275] Forked 20192 +(20191) found +(20192) found +[18274] Forked 20193 +[18273] Forked 20194 +(20193) found +(20194) found +[18272] Forked 20195 +[18271] Forked 20196 +(20195) found +(20196) found +[18270] Forked 20197 +[18269] Forked 20198 +(20197) found +(20198) found +[18268] Forked 20199 +[18267] Forked 20200 +(20199) found +(20200) found +[18266] Forked 20201 +[18265] Forked 20202 +(20201) found +(20202) found +[18264] Forked 20203 +[18263] Forked 20204 +(20203) found +(20204) found +[18262] Forked 20205 +[18261] Forked 20206 +(20205) found +(20206) found +[18260] Forked 20207 +[18259] Forked 20208 +(20207) found +(20208) found +[18258] Forked 20209 +[18257] Forked 20210 +(20209) found +(20210) found +[18256] Forked 20211 +[18255] Forked 20212 +(20211) found +(20212) found +[18254] Forked 20213 +[18253] Forked 20214 +(20213) found +(20214) found +[18252] Forked 20215 +[18251] Forked 20216 +(20215) found +(20216) found +[18250] Forked 20217 +[18249] Forked 20218 +(20217) found +(20218) found +[18248] Forked 20219 +[18247] Forked 20220 +(20219) found +(20220) found +[18246] Forked 20221 +[18245] Forked 20222 +(20221) found +(20222) found +[18244] Forked 20223 +[18243] Forked 20225 +(20223) found +(20225) found +[18242] Forked 20226 +(20226) found +[18241] Forked 20227 +(20227) found +[18240] Forked 20228 +(20228) found +[18239] Forked 20229 +(20229) found +[18238] Forked 20230 +(20230) found +[18237] Forked 20231 +(20231) found +[18236] Forked 20232 +(20232) found +[18235] Forked 20233 +(20233) found +[18234] Forked 20234 +(20234) found +[18233] Forked 20235 +(20235) found +[18232] Forked 20236 +(20236) found +[18231] Forked 20237 +(20237) found +[18230] Forked 20238 +(20238) found +[18229] Forked 20239 +(20239) found +[18228] Forked 20240 +(20240) found +[18227] Forked 20241 +(20241) found +[18226] Forked 20242 +(20242) found +[18225] Forked 20243 +(20243) found +[18224] Forked 20244 +(20244) found +[18223] Forked 20245 +(20245) found +[18222] Forked 20246 +(20246) found +[18221] Forked 20247 +(20247) found +[18220] Forked 20248 +(20248) found +[18219] Forked 20249 +(20249) found +[18218] Forked 20250 +(20250) found +[18217] Forked 20251 +(20251) found +[18216] Forked 20252 +(20252) found +[18215] Forked 20253 +(20253) found +[18214] Forked 20254 +(20254) found +[18213] Forked 20255 +(20255) found +[18212] Forked 20256 +(20256) found +[18211] Forked 20257 +(20257) found +[18210] Forked 20258 +(20258) found +[18209] Forked 20259 +(20259) found +[18208] Forked 20260 +(20260) found +[18207] Forked 20261 +(20261) found +[18206] Forked 20262 +(20262) found +[18205] Forked 20263 +(20263) found +[18204] Forked 20264 +(20264) found +[18203] Forked 20265 +(20265) found +[18202] Forked 20266 +(20266) found +[18201] Forked 20267 +(20267) found +[18200] Forked 20268 +(20268) found +[18199] Forked 20269 +(20269) found +[18198] Forked 20270 +(20270) found +[18197] Forked 20271 +(20271) found +[18196] Forked 20272 +(20272) found +[18195] Forked 20273 +(20273) found +[18194] Forked 20274 +(20274) found +[18193] Forked 20275 +(20275) found +[18192] Forked 20276 +(20276) found +[18191] Forked 20277 +(20277) found +[18190] Forked 20278 +(20278) found +[18189] Forked 20279 +(20279) found +[18188] Forked 20280 +(20280) found +[18187] Forked 20281 +(20281) found +[18186] Forked 20282 +(20282) found +[18185] Forked 20283 +(20283) found +[18184] Forked 20284 +(20284) found +[18183] Forked 20285 +(20285) found +[18182] Forked 20286 +(20286) found +[18181] Forked 20287 +(20287) found +[18180] Forked 20288 +(20288) found +[18179] Forked 20289 +(20289) found +[18178] Forked 20290 +(20290) found +[18177] Forked 20291 +(20291) found +[18176] Forked 20292 +(20292) found +[18175] Forked 20293 +(20293) found +[18174] Forked 20294 +(20294) found +[18173] Forked 20295 +(20295) found +[18172] Forked 20296 +(20296) found +[18171] Forked 20297 +(20297) found +[18170] Forked 20298 +(20298) found +[18169] Forked 20299 +(20299) found +[18168] Forked 20300 +(20300) found +[18167] Forked 20301 +(20301) found +[18166] Forked 20302 +(20302) found +[18165] Forked 20303 +(20303) found +[18164] Forked 20304 +(20304) found +[18163] Forked 20305 +(20305) found +[18162] Forked 20306 +(20306) found +[18161] Forked 20307 +(20307) found +[18160] Forked 20308 +(20308) found +[18159] Forked 20309 +(20309) found +[18158] Forked 20310 +(20310) found +[18157] Forked 20311 +(20311) found +[18156] Forked 20312 +(20312) found +[18155] Forked 20313 +(20313) found +[18154] Forked 20314 +(20314) found +[18153] Forked 20315 +(20315) found +[18152] Forked 20316 +(20316) found +[18151] Forked 20317 +(20317) found +[18150] Forked 20318 +(20318) found +[18149] Forked 20319 +(20319) found +[18148] Forked 20320 +(20320) found +[18147] Forked 20321 +(20321) found +[18146] Forked 20322 +(20322) found +[18145] Forked 20323 +(20323) found +[18144] Forked 20324 +(20324) found +[18143] Forked 20325 +(20325) found +[18142] Forked 20326 +(20326) found +[18141] Forked 20327 +(20327) found +[18140] Forked 20328 +(20328) found +[18139] Forked 20329 +(20329) found +[18138] Forked 20330 +(20330) found +[18137] Forked 20331 +(20331) found +[18136] Forked 20332 +(20332) found +[18135] Forked 20333 +(20333) found +[18134] Forked 20334 +(20334) found +[18133] Forked 20335 +(20335) found +[18132] Forked 20336 +(20336) found +[18131] Forked 20337 +(20337) found +[18130] Forked 20338 +(20338) found +[18129] Forked 20339 +(20339) found +[18128] Forked 20340 +(20340) found +[18127] Forked 20341 +(20341) found +[18126] Forked 20342 +[18125] Forked 20343 +(20342) found +(20343) found +[18124] Forked 20344 +[18123] Forked 20345 +(20344) found +(20345) found +[18122] Forked 20346 +[18121] Forked 20347 +(20346) found +(20347) found +[18120] Forked 20348 +[18119] Forked 20349 +(20348) found +(20349) found +[18118] Forked 20350 +[18117] Forked 20351 +(20350) found +(20351) found +[18116] Forked 20352 +[18115] Forked 20353 +(20352) found +(20353) found +[18114] Forked 20354 +[18113] Forked 20355 +(20354) found +(20355) found +[18112] Forked 20356 +[18111] Forked 20357 +(20356) found +(20357) found +[18110] Forked 20358 +[18109] Forked 20359 +(20358) found +(20359) found +[18108] Forked 20360 +[18107] Forked 20361 +(20360) found +(20361) found +[18106] Forked 20362 +[18105] Forked 20363 +(20362) found +(20363) found +[18104] Forked 20364 +[18103] Forked 20365 +(20364) found +(20365) found +[18102] Forked 20366 +[18101] Forked 20367 +(20366) found +(20367) found +[18100] Forked 20368 +[18099] Forked 20369 +(20368) found +(20369) found +[18098] Forked 20370 +[18097] Forked 20371 +(20370) found +(20371) found +[18096] Forked 20372 +[18095] Forked 20373 +(20372) found +(20373) found +[18094] Forked 20374 +[18093] Forked 20375 +(20374) found +(20375) found +[18092] Forked 20376 +[18091] Forked 20377 +(20376) found +(20377) found +[18090] Forked 20378 +[18089] Forked 20379 +(20378) found +(20379) found +[18088] Forked 20380 +[18087] Forked 20381 +(20380) found +(20381) found +[18086] Forked 20382 +[18085] Forked 20383 +(20382) found +(20383) found +[18084] Forked 20384 +[18083] Forked 20385 +(20384) found +(20385) found +[18082] Forked 20386 +[18081] Forked 20387 +(20386) found +(20387) found +[18080] Forked 20388 +[18079] Forked 20389 +(20388) found +(20389) found +[18078] Forked 20390 +[18077] Forked 20391 +(20390) found +(20391) found +[18076] Forked 20392 +[18075] Forked 20393 +(20392) found +(20393) found +[18074] Forked 20394 +[18073] Forked 20395 +(20394) found +(20395) found +[18072] Forked 20396 +[18071] Forked 20397 +(20396) found +(20397) found +[18070] Forked 20398 +[18069] Forked 20399 +(20398) found +(20399) found +[18068] Forked 20400 +[18067] Forked 20401 +(20400) found +(20401) found +[18066] Forked 20402 +[18065] Forked 20403 +(20402) found +(20403) found +[18064] Forked 20404 +[18063] Forked 20405 +(20404) found +(20405) found +[18062] Forked 20406 +[18061] Forked 20407 +(20406) found +(20407) found +[18060] Forked 20408 +[18059] Forked 20409 +(20408) found +(20409) found +[18058] Forked 20410 +[18057] Forked 20411 +(20410) found +(20411) found +[18056] Forked 20412 +[18055] Forked 20413 +(20412) found +(20413) found +[18054] Forked 20414 +[18053] Forked 20415 +(20414) found +(20415) found +[18052] Forked 20416 +[18051] Forked 20417 +(20416) found +(20417) found +[18050] Forked 20418 +[18049] Forked 20419 +(20418) found +(20419) found +[18048] Forked 20420 +[18047] Forked 20421 +(20420) found +(20421) found +[18046] Forked 20422 +[18045] Forked 20423 +(20422) found +(20423) found +[18044] Forked 20424 +[18043] Forked 20425 +(20424) found +(20425) found +[18042] Forked 20426 +[18041] Forked 20427 +(20426) found +(20427) found +[18040] Forked 20428 +[18039] Forked 20429 +(20428) found +(20429) found +[18038] Forked 20430 +[18037] Forked 20431 +(20430) found +(20431) found +[18036] Forked 20432 +(20432) found +[18035] Forked 20433 +(20433) found +[18034] Forked 20434 +(20434) found +[18033] Forked 20435 +(20435) found +[18032] Forked 20436 +(20436) found +[18031] Forked 20437 +(20437) found +[18030] Forked 20438 +(20438) found +[18029] Forked 20439 +(20439) found +[18028] Forked 20440 +(20440) found +[18027] Forked 20441 +(20441) found +[18026] Forked 20442 +(20442) found +[18025] Forked 20443 +(20443) found +[18024] Forked 20444 +(20444) found +[18023] Forked 20445 +(20445) found +[18022] Forked 20446 +(20446) found +[18021] Forked 20447 +(20447) found +[18020] Forked 20448 +(20448) found +[18019] Forked 20449 +(20449) found +[18018] Forked 20450 +(20450) found +[18017] Forked 20451 +(20451) found +[18016] Forked 20452 +(20452) found +[18015] Forked 20453 +(20453) found +[18014] Forked 20454 +(20454) found +[18013] Forked 20455 +(20455) found +[18012] Forked 20456 +(20456) found +[18011] Forked 20457 +(20457) found +[18010] Forked 20458 +(20458) found +[18009] Forked 20459 +(20459) found +[18008] Forked 20460 +(20460) found +[18007] Forked 20461 +(20461) found +[18006] Forked 20462 +(20462) found +[18005] Forked 20463 +(20463) found +[18004] Forked 20464 +(20464) found +[18003] Forked 20465 +(20465) found +[18002] Forked 20466 +(20466) found +[18001] Forked 20467 +(20467) found +[18000] Forked 20468 +[17999] Forked 20469 +(20468) found +(20469) found +[17998] Forked 20470 +[17997] Forked 20471 +(20470) found +(20471) found +[17996] Forked 20472 +(20472) found +[17995] Forked 20473 +[17994] Forked 20474 +(20473) found +(20474) found +[17993] Forked 20475 +[17992] Forked 20476 +(20475) found +(20476) found +[17991] Forked 20477 +[17990] Forked 20478 +(20477) found +(20478) found +[17989] Forked 20479 +[17988] Forked 20480 +(20479) found +(20480) found +[17987] Forked 20481 +[17986] Forked 20482 +(20481) found +(20482) found +[17985] Forked 20483 +(20483) found +[17984] Forked 20484 +[17983] Forked 20485 +(20484) found +(20485) found +[17982] Forked 20486 +[17981] Forked 20487 +(20486) found +(20487) found +[17980] Forked 20488 +[17979] Forked 20489 +(20488) found +(20489) found +[17978] Forked 20490 +[17977] Forked 20491 +(20490) found +(20491) found +[17976] Forked 20492 +[17975] Forked 20493 +(20492) found +(20493) found +[17974] Forked 20494 +[17973] Forked 20495 +(20494) found +(20495) found +[17972] Forked 20496 +[17971] Forked 20497 +(20496) found +(20497) found +[17970] Forked 20498 +[17969] Forked 20499 +(20498) found +(20499) found +[17968] Forked 20500 +[17967] Forked 20501 +(20500) found +(20501) found +[17966] Forked 20502 +[17965] Forked 20503 +(20502) found +(20503) found +[17964] Forked 20504 +[17963] Forked 20505 +(20504) found +(20505) found +[17962] Forked 20506 +[17961] Forked 20507 +(20506) found +(20507) found +[17960] Forked 20508 +[17959] Forked 20509 +(20508) found +(20509) found +[17958] Forked 20510 +[17957] Forked 20511 +(20510) found +(20511) found +[17956] Forked 20512 +(20512) found +[17955] Forked 20513 +(20513) found +[17954] Forked 20514 +(20514) found +[17953] Forked 20515 +(20515) found +[17952] Forked 20516 +(20516) found +[17951] Forked 20517 +(20517) found +[17950] Forked 20518 +(20518) found +[17949] Forked 20519 +(20519) found +[17948] Forked 20520 +(20520) found +[17947] Forked 20521 +(20521) found +[17946] Forked 20522 +(20522) found +[17945] Forked 20523 +(20523) found +[17944] Forked 20524 +(20524) found +[17943] Forked 20525 +(20525) found +[17942] Forked 20526 +(20526) found +[17941] Forked 20527 +(20527) found +[17940] Forked 20528 +(20528) found +[17939] Forked 20529 +(20529) found +[17938] Forked 20530 +(20530) found +[17937] Forked 20531 +(20531) found +[17936] Forked 20532 +(20532) found +[17935] Forked 20533 +(20533) found +[17934] Forked 20534 +(20534) found +[17933] Forked 20535 +(20535) found +[17932] Forked 20536 +(20536) found +[17931] Forked 20537 +(20537) found +[17930] Forked 20538 +(20538) found +[17929] Forked 20539 +(20539) found +[17928] Forked 20540 +(20540) found +[17927] Forked 20541 +(20541) found +[17926] Forked 20542 +(20542) found +[17925] Forked 20543 +(20543) found +[17924] Forked 20544 +(20544) found +[17923] Forked 20545 +(20545) found +[17922] Forked 20546 +(20546) found +[17921] Forked 20547 +(20547) found +[17920] Forked 20548 +[17919] Forked 20549 +(20548) found +(20549) found +[17918] Forked 20550 +[17917] Forked 20551 +(20550) found +(20551) found +[17916] Forked 20552 +[17915] Forked 20553 +(20552) found +(20553) found +[17914] Forked 20554 +[17913] Forked 20555 +(20554) found +(20555) found +[17912] Forked 20556 +[17911] Forked 20557 +(20556) found +(20557) found +[17910] Forked 20558 +[17909] Forked 20559 +(20558) found +(20559) found +[17908] Forked 20560 +[17907] Forked 20561 +(20560) found +(20561) found +[17906] Forked 20562 +[17905] Forked 20563 +(20562) found +(20563) found +[17904] Forked 20564 +[17903] Forked 20565 +(20564) found +(20565) found +[17902] Forked 20566 +[17901] Forked 20567 +(20566) found +(20567) found +[17900] Forked 20568 +[17899] Forked 20569 +(20568) found +(20569) found +[17898] Forked 20570 +[17897] Forked 20571 +(20570) found +(20571) found +[17896] Forked 20572 +[17895] Forked 20573 +(20572) found +(20573) found +[17894] Forked 20574 +[17893] Forked 20575 +(20574) found +(20575) found +[17892] Forked 20576 +[17891] Forked 20577 +(20576) found +(20577) found +[17890] Forked 20578 +[17889] Forked 20579 +(20578) found +(20579) found +[17888] Forked 20580 +(20580) found +[17887] Forked 20581 +(20581) found +[17886] Forked 20582 +[17885] Forked 20583 +(20582) found +(20583) found +[17884] Forked 20584 +[17883] Forked 20585 +(20584) found +(20585) found +[17882] Forked 20586 +[17881] Forked 20587 +(20586) found +(20587) found +[17880] Forked 20588 +[17879] Forked 20589 +(20588) found +(20589) found +[17878] Forked 20590 +[17877] Forked 20591 +(20590) found +(20591) found +[17876] Forked 20592 +[17875] Forked 20593 +(20592) found +(20593) found +[17874] Forked 20594 +[17873] Forked 20595 +(20594) found +(20595) found +[17872] Forked 20596 +[17871] Forked 20597 +(20596) found +(20597) found +[17870] Forked 20598 +[17869] Forked 20599 +(20598) found +(20599) found +[17868] Forked 20600 +[17867] Forked 20601 +(20600) found +(20601) found +[17866] Forked 20602 +[17865] Forked 20603 +(20602) found +(20603) found +[17864] Forked 20604 +[17863] Forked 20605 +(20604) found +(20605) found +[17862] Forked 20606 +[17861] Forked 20607 +(20606) found +(20607) found +[17860] Forked 20608 +[17859] Forked 20609 +(20608) found +(20609) found +[17858] Forked 20610 +[17857] Forked 20611 +(20610) found +(20611) found +[17856] Forked 20612 +[17855] Forked 20613 +(20612) found +(20613) found +[17854] Forked 20614 +[17853] Forked 20615 +(20614) found +(20615) found +[17852] Forked 20616 +[17851] Forked 20617 +(20616) found +(20617) found +[17850] Forked 20618 +[17849] Forked 20619 +(20618) found +(20619) found +[17848] Forked 20620 +[17847] Forked 20621 +(20620) found +(20621) found +[17846] Forked 20622 +[17845] Forked 20623 +(20622) found +(20623) found +[17844] Forked 20624 +[17843] Forked 20625 +(20624) found +(20625) found +[17842] Forked 20626 +[17841] Forked 20627 +(20626) found +(20627) found +[17840] Forked 20628 +[17839] Forked 20629 +(20628) found +(20629) found +[17838] Forked 20630 +[17837] Forked 20631 +(20630) found +(20631) found +[17836] Forked 20632 +[17835] Forked 20633 +(20632) found +(20633) found +[17834] Forked 20634 +[17833] Forked 20635 +(20634) found +(20635) found +[17832] Forked 20636 +[17831] Forked 20637 +(20636) found +(20637) found +[17830] Forked 20638 +(20638) found +[17829] Forked 20639 +(20639) found +[17828] Forked 20640 +(20640) found +[17827] Forked 20641 +(20641) found +[17826] Forked 20642 +(20642) found +[17825] Forked 20643 +(20643) found +[17824] Forked 20644 +(20644) found +[17823] Forked 20645 +(20645) found +[17822] Forked 20646 +(20646) found +[17821] Forked 20647 +(20647) found +[17820] Forked 20648 +(20648) found +[17819] Forked 20649 +(20649) found +[17818] Forked 20650 +(20650) found +[17817] Forked 20651 +(20651) found +[17816] Forked 20652 +(20652) found +[17815] Forked 20653 +(20653) found +[17814] Forked 20654 +(20654) found +[17813] Forked 20655 +(20655) found +[17812] Forked 20656 +(20656) found +[17811] Forked 20657 +(20657) found +[17810] Forked 20658 +(20658) found +[17809] Forked 20659 +(20659) found +[17808] Forked 20660 +(20660) found +[17807] Forked 20661 +(20661) found +[17806] Forked 20662 +(20662) found +[17805] Forked 20663 +(20663) found +[17804] Forked 20664 +(20664) found +[17803] Forked 20665 +(20665) found +[17802] Forked 20666 +(20666) found +[17801] Forked 20667 +(20667) found +[17800] Forked 20668 +(20668) found +[17799] Forked 20669 +(20669) found +[17798] Forked 20670 +(20670) found +[17797] Forked 20671 +(20671) found +[17796] Forked 20672 +(20672) found +[17795] Forked 20673 +[17794] Forked 20674 +(20673) found +(20674) found +[17793] Forked 20675 +[17792] Forked 20676 +(20676) found +(20675) found +[17791] Forked 20677 +(20677) found +[17790] Forked 20678 +(20678) found +[17789] Forked 20679 +(20679) found +[17788] Forked 20680 +(20680) found +[17787] Forked 20681 +(20681) found +[17786] Forked 20682 +(20682) found +[17785] Forked 20683 +(20683) found +[17784] Forked 20684 +(20684) found +[17783] Forked 20685 +(20685) found +[17782] Forked 20686 +(20686) found +[17781] Forked 20687 +(20687) found +[17780] Forked 20688 +(20688) found +[17779] Forked 20689 +(20689) found +[17778] Forked 20690 +(20690) found +[17777] Forked 20691 +(20691) found +[17776] Forked 20692 +(20692) found +[17775] Forked 20693 +(20693) found +[17774] Forked 20694 +(20694) found +[17773] Forked 20695 +(20695) found +[17772] Forked 20696 +(20696) found +[17771] Forked 20697 +(20697) found +[17770] Forked 20698 +(20698) found +[17769] Forked 20699 +(20699) found +[17768] Forked 20700 +(20700) found +[17767] Forked 20701 +(20701) found +[17766] Forked 20702 +(20702) found +[17765] Forked 20703 +(20703) found +[17764] Forked 20704 +(20704) found +[17763] Forked 20705 +(20705) found +[17762] Forked 20706 +(20706) found +[17761] Forked 20707 +(20707) found +[17760] Forked 20708 +(20708) found +[17759] Forked 20709 +(20709) found +[17758] Forked 20710 +(20710) found +[17757] Forked 20711 +(20711) found +[17756] Forked 20712 +(20712) found +[17755] Forked 20713 +(20713) found +[17754] Forked 20714 +(20714) found +[17753] Forked 20715 +(20715) found +[17752] Forked 20716 +(20716) found +[17751] Forked 20717 +(20717) found +[17750] Forked 20718 +(20718) found +[17749] Forked 20719 +(20719) found +[17748] Forked 20720 +(20720) found +[17747] Forked 20721 +(20721) found +[17746] Forked 20722 +(20722) found +[17745] Forked 20723 +(20723) found +[17744] Forked 20724 +(20724) found +[17743] Forked 20725 +(20725) found +[17742] Forked 20726 +(20726) found +[17741] Forked 20727 +(20727) found +[17740] Forked 20728 +(20728) found +[17739] Forked 20729 +(20729) found +[17738] Forked 20730 +(20730) found +[17737] Forked 20731 +(20731) found +[17736] Forked 20732 +(20732) found +[17735] Forked 20733 +(20733) found +[17734] Forked 20734 +(20734) found +[17733] Forked 20735 +(20735) found +[17732] Forked 20736 +(20736) found +[17731] Forked 20737 +(20737) found +[17730] Forked 20738 +(20738) found +[17729] Forked 20739 +(20739) found +[17728] Forked 20740 +(20740) found +[17727] Forked 20741 +(20741) found +[17726] Forked 20742 +(20742) found +[17725] Forked 20743 +(20743) found +[17724] Forked 20744 +[17723] Forked 20745 +(20744) found +(20745) found +[17722] Forked 20746 +[17721] Forked 20747 +(20746) found +(20747) found +[17720] Forked 20748 +[17719] Forked 20749 +(20748) found +(20749) found +[17718] Forked 20750 +[17717] Forked 20751 +(20750) found +(20751) found +[17716] Forked 20752 +[17715] Forked 20753 +(20752) found +(20753) found +[17714] Forked 20754 +[17713] Forked 20755 +(20754) found +(20755) found +[17712] Forked 20756 +[17711] Forked 20757 +(20756) found +(20757) found +[17710] Forked 20758 +[17709] Forked 20759 +(20758) found +(20759) found +[17708] Forked 20760 +[17707] Forked 20761 +(20760) found +(20761) found +[17706] Forked 20762 +[17705] Forked 20763 +(20762) found +(20763) found +[17704] Forked 20764 +[17703] Forked 20765 +(20764) found +(20765) found +[17702] Forked 20766 +[17701] Forked 20767 +(20766) found +(20767) found +[17700] Forked 20768 +[17699] Forked 20769 +(20768) found +(20769) found +[17698] Forked 20770 +[17697] Forked 20771 +(20770) found +(20771) found +[17696] Forked 20772 +[17695] Forked 20773 +(20772) found +(20773) found +[17694] Forked 20774 +[17693] Forked 20775 +(20774) found +(20775) found +[17692] Forked 20776 +[17691] Forked 20777 +(20776) found +(20777) found +[17690] Forked 20778 +[17689] Forked 20779 +(20778) found +(20779) found +[17688] Forked 20780 +[17687] Forked 20781 +(20780) found +(20781) found +[17686] Forked 20782 +[17685] Forked 20783 +(20782) found +(20783) found +[17684] Forked 20784 +[17683] Forked 20785 +(20784) found +(20785) found +[17682] Forked 20786 +[17681] Forked 20787 +(20786) found +(20787) found +[17680] Forked 20788 +[17679] Forked 20789 +(20788) found +(20789) found +[17678] Forked 20790 +[17677] Forked 20791 +(20790) found +(20791) found +[17676] Forked 20792 +[17675] Forked 20793 +(20792) found +(20793) found +[17674] Forked 20794 +[17673] Forked 20795 +(20794) found +(20795) found +[17672] Forked 20796 +[17671] Forked 20797 +(20796) found +(20797) found +[17670] Forked 20798 +[17669] Forked 20799 +(20798) found +(20799) found +[17668] Forked 20800 +[17667] Forked 20801 +(20800) found +(20801) found +[17666] Forked 20802 +[17665] Forked 20803 +(20802) found +(20803) found +[17664] Forked 20804 +[17663] Forked 20805 +(20804) found +(20805) found +[17662] Forked 20806 +[17661] Forked 20807 +(20806) found +(20807) found +[17660] Forked 20808 +[17659] Forked 20809 +(20808) found +(20809) found +[17658] Forked 20810 +[17657] Forked 20811 +(20810) found +(20811) found +[17656] Forked 20812 +[17655] Forked 20813 +(20812) found +(20813) found +[17654] Forked 20814 +[17653] Forked 20815 +(20814) found +(20815) found +[17652] Forked 20816 +[17651] Forked 20817 +(20816) found +(20817) found +[17650] Forked 20818 +[17649] Forked 20819 +(20818) found +(20819) found +[17648] Forked 20820 +[17647] Forked 20821 +(20820) found +(20821) found +[17646] Forked 20822 +[17645] Forked 20823 +(20822) found +(20823) found +[17644] Forked 20824 +[17643] Forked 20825 +(20824) found +(20825) found +[17642] Forked 20826 +[17641] Forked 20827 +(20826) found +(20827) found +[17640] Forked 20828 +[17639] Forked 20829 +(20828) found +(20829) found +[17638] Forked 20830 +[17637] Forked 20831 +(20830) found +(20831) found +[17636] Forked 20832 +[17635] Forked 20833 +(20832) found +(20833) found +[17634] Forked 20834 +(20834) found +[17633] Forked 20835 +[17632] Forked 20836 +(20835) found +(20836) found +[17631] Forked 20837 +[17630] Forked 20838 +(20837) found +(20838) found +[17629] Forked 20839 +[17628] Forked 20840 +(20839) found +(20840) found +[17627] Forked 20841 +[17626] Forked 20842 +(20841) found +(20842) found +[17625] Forked 20843 +[17624] Forked 20844 +(20843) found +(20844) found +[17623] Forked 20845 +[17622] Forked 20846 +(20845) found +(20846) found +[17621] Forked 20847 +[17620] Forked 20848 +(20847) found +(20848) found +[17619] Forked 20849 +[17618] Forked 20850 +(20849) found +(20850) found +[17617] Forked 20851 +[17616] Forked 20852 +(20851) found +(20852) found +[17615] Forked 20853 +[17614] Forked 20854 +(20853) found +(20854) found +[17613] Forked 20855 +[17612] Forked 20856 +(20855) found +(20856) found +[17611] Forked 20857 +[17610] Forked 20858 +(20857) found +(20858) found +[17609] Forked 20859 +[17608] Forked 20860 +(20859) found +(20860) found +[17607] Forked 20861 +[17606] Forked 20862 +(20861) found +(20862) found +[17605] Forked 20863 +[17604] Forked 20864 +(20863) found +(20864) found +[17603] Forked 20865 +[17602] Forked 20866 +(20865) found +(20866) found +[17601] Forked 20867 +[17600] Forked 20868 +(20867) found +(20868) found +[17599] Forked 20869 +[17598] Forked 20870 +(20869) found +(20870) found +[17597] Forked 20871 +[17596] Forked 20872 +(20871) found +(20872) found +[17595] Forked 20873 +[17594] Forked 20874 +(20873) found +(20874) found +[17593] Forked 20875 +[17592] Forked 20876 +(20875) found +(20876) found +[17591] Forked 20877 +[17590] Forked 20878 +(20877) found +(20878) found +[17589] Forked 20879 +[17588] Forked 20880 +(20879) found +(20880) found +[17587] Forked 20881 +[17586] Forked 20882 +(20881) found +(20882) found +[17585] Forked 20883 +[17584] Forked 20884 +(20883) found +(20884) found +[17583] Forked 20885 +[17582] Forked 20886 +(20885) found +(20886) found +[17581] Forked 20887 +[17580] Forked 20888 +(20887) found +(20888) found +[17579] Forked 20889 +[17578] Forked 20890 +(20889) found +(20890) found +[17577] Forked 20891 +[17576] Forked 20892 +(20891) found +(20892) found +[17575] Forked 20893 +[17574] Forked 20894 +(20893) found +(20894) found +[17573] Forked 20895 +[17572] Forked 20896 +(20895) found +(20896) found +[17571] Forked 20897 +[17570] Forked 20898 +(20897) found +(20898) found +[17569] Forked 20899 +[17568] Forked 20900 +(20899) found +(20900) found +[17567] Forked 20901 +[17566] Forked 20902 +(20901) found +(20902) found +[17565] Forked 20903 +[17564] Forked 20904 +(20903) found +(20904) found +[17563] Forked 20905 +[17562] Forked 20906 +(20905) found +(20906) found +[17561] Forked 20907 +[17560] Forked 20908 +(20907) found +(20908) found +[17559] Forked 20909 +[17558] Forked 20910 +(20909) found +(20910) found +[17557] Forked 20911 +[17556] Forked 20912 +(20911) found +(20912) found +[17555] Forked 20913 +[17554] Forked 20914 +(20913) found +(20914) found +[17553] Forked 20915 +[17552] Forked 20916 +(20915) found +(20916) found +[17551] Forked 20917 +[17550] Forked 20918 +(20917) found +(20918) found +[17549] Forked 20919 +[17548] Forked 20920 +(20919) found +(20920) found +[17547] Forked 20921 +[17546] Forked 20922 +(20921) found +(20922) found +[17545] Forked 20923 +[17544] Forked 20924 +(20923) found +(20924) found +[17543] Forked 20925 +[17542] Forked 20926 +(20925) found +(20926) found +[17541] Forked 20927 +[17540] Forked 20928 +(20927) found +(20928) found +[17539] Forked 20929 +[17538] Forked 20930 +(20929) found +(20930) found +[17537] Forked 20931 +[17536] Forked 20932 +(20931) found +(20932) found +[17535] Forked 20933 +[17534] Forked 20934 +(20933) found +(20934) found +[17533] Forked 20935 +[17532] Forked 20936 +(20935) found +(20936) found +[17531] Forked 20937 +[17530] Forked 20938 +(20937) found +(20938) found +[17529] Forked 20939 +[17528] Forked 20940 +(20939) found +(20940) found +[17527] Forked 20941 +[17526] Forked 20942 +(20941) found +(20942) found +[17525] Forked 20943 +[17524] Forked 20944 +(20943) found +(20944) found +[17523] Forked 20945 +[17522] Forked 20946 +(20945) found +(20946) found +[17521] Forked 20947 +[17520] Forked 20948 +(20947) found +(20948) found +[17519] Forked 20949 +[17518] Forked 20950 +(20949) found +(20950) found +[17517] Forked 20951 +[17516] Forked 20952 +(20951) found +(20952) found +[17515] Forked 20953 +[17514] Forked 20954 +(20953) found +(20954) found +[17513] Forked 20955 +[17512] Forked 20956 +(20955) found +(20956) found +[17511] Forked 20957 +[17510] Forked 20958 +(20957) found +(20958) found +[17509] Forked 20959 +[17508] Forked 20960 +(20959) found +(20960) found +[17507] Forked 20961 +[17506] Forked 20962 +(20961) found +(20962) found +[17505] Forked 20963 +[17504] Forked 20964 +(20963) found +(20964) found +[17503] Forked 20965 +[17502] Forked 20966 +(20965) found +(20966) found +[17501] Forked 20967 +[17500] Forked 20968 +(20967) found +(20968) found +[17499] Forked 20969 +[17498] Forked 20970 +(20969) found +(20970) found +[17497] Forked 20971 +[17496] Forked 20972 +(20971) found +(20972) found +[17495] Forked 20973 +(20973) found +[17494] Forked 20974 +(20974) found +[17493] Forked 20975 +(20975) found +[17492] Forked 20976 +(20976) found +[17491] Forked 20977 +(20977) found +[17490] Forked 20978 +(20978) found +[17489] Forked 20979 +(20979) found +[17488] Forked 20980 +(20980) found +[17487] Forked 20981 +(20981) found +[17486] Forked 20982 +(20982) found +[17485] Forked 20983 +(20983) found +[17484] Forked 20984 +(20984) found +[17483] Forked 20985 +(20985) found +[17482] Forked 20986 +(20986) found +[17481] Forked 20987 +(20987) found +[17480] Forked 20988 +(20988) found +[17479] Forked 20989 +(20989) found +[17478] Forked 20990 +(20990) found +[17477] Forked 20991 +(20991) found +[17476] Forked 20992 +(20992) found +[17475] Forked 20993 +(20993) found +[17474] Forked 20994 +(20994) found +[17473] Forked 20995 +(20995) found +[17472] Forked 20996 +(20996) found +[17471] Forked 20997 +(20997) found +[17470] Forked 20998 +(20998) found +[17469] Forked 20999 +(20999) found +[17468] Forked 21000 +(21000) found +[17467] Forked 21001 +(21001) found +[17466] Forked 21002 +(21002) found +[17465] Forked 21003 +(21003) found +[17464] Forked 21004 +(21004) found +[17463] Forked 21005 +(21005) found +[17462] Forked 21006 +(21006) found +[17461] Forked 21007 +(21007) found +[17460] Forked 21008 +[17459] Forked 21009 +(21008) found +(21009) found +[17458] Forked 21010 +[17457] Forked 21011 +(21010) found +(21011) found +[17456] Forked 21012 +[17455] Forked 21013 +(21012) found +(21013) found +[17454] Forked 21014 +[17453] Forked 21015 +(21014) found +(21015) found +[17452] Forked 21016 +[17451] Forked 21017 +(21016) found +(21017) found +[17450] Forked 21018 +[17449] Forked 21019 +(21018) found +(21019) found +[17448] Forked 21020 +[17447] Forked 21021 +(21020) found +(21021) found +[17446] Forked 21022 +[17445] Forked 21023 +(21022) found +(21023) found +[17444] Forked 21024 +[17443] Forked 21025 +(21024) found +(21025) found +[17442] Forked 21026 +[17441] Forked 21027 +(21026) found +(21027) found +[17440] Forked 21028 +[17439] Forked 21029 +(21028) found +(21029) found +[17438] Forked 21030 +[17437] Forked 21031 +(21030) found +(21031) found +[17436] Forked 21032 +[17435] Forked 21033 +(21032) found +(21033) found +[17434] Forked 21034 +[17433] Forked 21035 +(21034) found +(21035) found +[17432] Forked 21036 +[17431] Forked 21037 +(21036) found +(21037) found +[17430] Forked 21038 +[17429] Forked 21039 +(21038) found +(21039) found +[17428] Forked 21040 +[17427] Forked 21041 +(21040) found +(21041) found +[17426] Forked 21042 +[17425] Forked 21043 +(21042) found +(21043) found +[17424] Forked 21044 +[17423] Forked 21045 +(21044) found +(21045) found +[17422] Forked 21046 +[17421] Forked 21047 +(21046) found +(21047) found +[17420] Forked 21048 +[17419] Forked 21049 +(21048) found +(21049) found +[17418] Forked 21050 +[17417] Forked 21051 +(21050) found +(21051) found +[17416] Forked 21052 +[17415] Forked 21053 +(21052) found +(21053) found +[17414] Forked 21054 +(21054) found +[17413] Forked 21055 +(21055) found +[17412] Forked 21056 +(21056) found +[17411] Forked 21057 +(21057) found +[17410] Forked 21058 +(21058) found +[17409] Forked 21059 +(21059) found +[17408] Forked 21060 +(21060) found +[17407] Forked 21061 +(21061) found +[17406] Forked 21062 +(21062) found +[17405] Forked 21063 +(21063) found +[17404] Forked 21064 +(21064) found +[17403] Forked 21065 +(21065) found +[17402] Forked 21066 +(21066) found +[17401] Forked 21067 +(21067) found +[17400] Forked 21068 +(21068) found +[17399] Forked 21069 +(21069) found +[17398] Forked 21070 +(21070) found +[17397] Forked 21071 +(21071) found +[17396] Forked 21072 +(21072) found +[17395] Forked 21073 +(21073) found +[17394] Forked 21074 +(21074) found +[17393] Forked 21075 +(21075) found +[17392] Forked 21076 +(21076) found +[17391] Forked 21077 +(21077) found +[17390] Forked 21078 +(21078) found +[17389] Forked 21079 +(21079) found +[17388] Forked 21080 +(21080) found +[17387] Forked 21081 +(21081) found +[17386] Forked 21082 +(21082) found +[17385] Forked 21083 +(21083) found +[17384] Forked 21084 +(21084) found +[17383] Forked 21085 +(21085) found +[17382] Forked 21086 +(21086) found +[17381] Forked 21087 +(21087) found +[17380] Forked 21088 +[17379] Forked 21089 +(21088) found +(21089) found +[17378] Forked 21090 +[17377] Forked 21091 +(21090) found +(21091) found +[17376] Forked 21092 +[17375] Forked 21093 +(21092) found +(21093) found +[17374] Forked 21094 +[17373] Forked 21095 +(21094) found +(21095) found +[17372] Forked 21096 +[17371] Forked 21097 +(21096) found +(21097) found +[17370] Forked 21098 +[17369] Forked 21099 +(21098) found +(21099) found +[17368] Forked 21100 +[17367] Forked 21101 +(21100) found +(21101) found +[17366] Forked 21102 +[17365] Forked 21103 +(21102) found +(21103) found +[17364] Forked 21104 +[17363] Forked 21105 +(21104) found +(21105) found +[17362] Forked 21106 +[17361] Forked 21107 +(21106) found +(21107) found +[17360] Forked 21108 +[17359] Forked 21109 +(21108) found +(21109) found +[17358] Forked 21110 +[17357] Forked 21111 +(21110) found +(21111) found +[17356] Forked 21112 +[17355] Forked 21113 +(21112) found +(21113) found +[17354] Forked 21114 +[17353] Forked 21115 +(21114) found +(21115) found +[17352] Forked 21116 +[17351] Forked 21117 +(21116) found +(21117) found +[17350] Forked 21118 +[17349] Forked 21119 +(21118) found +(21119) found +[17348] Forked 21120 +[17347] Forked 21121 +(21120) found +(21121) found +[17346] Forked 21122 +[17345] Forked 21123 +(21122) found +(21123) found +[17344] Forked 21124 +[17343] Forked 21125 +(21124) found +(21125) found +[17342] Forked 21126 +[17341] Forked 21127 +(21126) found +(21127) found +[17340] Forked 21128 +[17339] Forked 21129 +(21128) found +(21129) found +[17338] Forked 21130 +[17337] Forked 21131 +(21130) found +(21131) found +[17336] Forked 21132 +[17335] Forked 21133 +(21132) found +(21133) found +[17334] Forked 21134 +(21134) found +[17333] Forked 21135 +(21135) found +[17332] Forked 21136 +(21136) found +[17331] Forked 21137 +(21137) found +[17330] Forked 21138 +(21138) found +[17329] Forked 21139 +(21139) found +[17328] Forked 21140 +(21140) found +[17327] Forked 21141 +(21141) found +[17326] Forked 21142 +(21142) found +[17325] Forked 21143 +(21143) found +[17324] Forked 21144 +(21144) found +[17323] Forked 21145 +(21145) found +[17322] Forked 21146 +(21146) found +[17321] Forked 21147 +(21147) found +[17320] Forked 21148 +(21148) found +[17319] Forked 21149 +(21149) found +[17318] Forked 21150 +(21150) found +[17317] Forked 21151 +(21151) found +[17316] Forked 21152 +(21152) found +[17315] Forked 21153 +(21153) found +[17314] Forked 21154 +(21154) found +[17313] Forked 21155 +(21155) found +[17312] Forked 21156 +(21156) found +[17311] Forked 21157 +(21157) found +[17310] Forked 21158 +(21158) found +[17309] Forked 21159 +(21159) found +[17308] Forked 21160 +(21160) found +[17307] Forked 21161 +(21161) found +[17306] Forked 21162 +(21162) found +[17305] Forked 21163 +(21163) found +[17304] Forked 21164 +(21164) found +[17303] Forked 21165 +(21165) found +[17302] Forked 21166 +(21166) found +[17301] Forked 21167 +(21167) found +[17300] Forked 21168 +(21168) found +[17299] Forked 21169 +[17298] Forked 21170 +(21169) found +(21170) found +[17297] Forked 21171 +[17296] Forked 21172 +(21171) found +(21172) found +[17295] Forked 21173 +[17294] Forked 21174 +(21173) found +(21174) found +[17293] Forked 21175 +[17292] Forked 21176 +(21175) found +(21176) found +[17291] Forked 21177 +[17290] Forked 21178 +(21177) found +(21178) found +[17289] Forked 21179 +[17288] Forked 21180 +(21179) found +(21180) found +[17287] Forked 21181 +[17286] Forked 21182 +(21181) found +(21182) found +[17285] Forked 21183 +[17284] Forked 21184 +(21183) found +(21184) found +[17283] Forked 21185 +[17282] Forked 21186 +(21185) found +(21186) found +[17281] Forked 21187 +[17280] Forked 21188 +(21187) found +(21188) found +[17279] Forked 21189 +[17278] Forked 21190 +(21189) found +(21190) found +[17277] Forked 21191 +[17276] Forked 21192 +(21191) found +(21192) found +[17275] Forked 21193 +[17274] Forked 21194 +(21193) found +(21194) found +[17273] Forked 21195 +[17272] Forked 21196 +(21195) found +(21196) found +[17271] Forked 21197 +[17270] Forked 21198 +(21197) found +(21198) found +[17269] Forked 21199 +[17268] Forked 21200 +(21199) found +(21200) found +[17267] Forked 21201 +[17266] Forked 21202 +(21201) found +(21202) found +[17265] Forked 21203 +[17264] Forked 21204 +(21203) found +(21204) found +[17263] Forked 21205 +[17262] Forked 21206 +(21205) found +(21206) found +[17261] Forked 21207 +[17260] Forked 21208 +(21207) found +(21208) found +[17259] Forked 21209 +[17258] Forked 21210 +(21209) found +(21210) found +[17257] Forked 21211 +[17256] Forked 21212 +(21211) found +(21212) found +[17255] Forked 21213 +[17254] Forked 21214 +(21213) found +(21214) found +[17253] Forked 21215 +(21215) found +[17252] Forked 21216 +(21216) found +[17251] Forked 21217 +(21217) found +[17250] Forked 21218 +(21218) found +[17249] Forked 21219 +(21219) found +[17248] Forked 21220 +(21220) found +[17247] Forked 21221 +(21221) found +[17246] Forked 21222 +(21222) found +[17245] Forked 21223 +(21223) found +[17244] Forked 21224 +(21224) found +[17243] Forked 21225 +(21225) found +[17242] Forked 21226 +(21226) found +[17241] Forked 21227 +(21227) found +[17240] Forked 21228 +(21228) found +[17239] Forked 21229 +(21229) found +[17238] Forked 21230 +(21230) found +[17237] Forked 21231 +(21231) found +[17236] Forked 21232 +(21232) found +[17235] Forked 21233 +(21233) found +[17234] Forked 21234 +(21234) found +[17233] Forked 21235 +(21235) found +[17232] Forked 21236 +(21236) found +[17231] Forked 21237 +(21237) found +[17230] Forked 21238 +(21238) found +[17229] Forked 21239 +(21239) found +[17228] Forked 21240 +(21240) found +[17227] Forked 21241 +(21241) found +[17226] Forked 21242 +(21242) found +[17225] Forked 21243 +(21243) found +[17224] Forked 21244 +(21244) found +[17223] Forked 21245 +(21245) found +[17222] Forked 21246 +(21246) found +[17221] Forked 21247 +(21247) found +[17220] Forked 21248 +(21248) found +[17219] Forked 21249 +(21249) found +[17218] Forked 21250 +[17217] Forked 21251 +(21250) found +(21251) found +[17216] Forked 21252 +(21252) found +[17215] Forked 21253 +(21253) found +[17214] Forked 21254 +(21254) found +[17213] Forked 21255 +[17212] Forked 21256 +(21255) found +(21256) found +[17211] Forked 21257 +[17210] Forked 21258 +(21257) found +(21258) found +[17209] Forked 21259 +[17208] Forked 21260 +(21259) found +(21260) found +[17207] Forked 21261 +[17206] Forked 21262 +(21261) found +(21262) found +[17205] Forked 21263 +[17204] Forked 21264 +(21263) found +(21264) found +[17203] Forked 21265 +[17202] Forked 21266 +(21265) found +(21266) found +[17201] Forked 21267 +[17200] Forked 21268 +(21267) found +(21268) found +[17199] Forked 21269 +[17198] Forked 21270 +(21269) found +(21270) found +[17197] Forked 21271 +[17196] Forked 21272 +(21271) found +(21272) found +[17195] Forked 21273 +[17194] Forked 21274 +(21273) found +(21274) found +[17193] Forked 21275 +[17192] Forked 21276 +(21275) found +(21276) found +[17191] Forked 21277 +[17190] Forked 21279 +(21277) found +(21279) found +[17189] Forked 21280 +(21280) found +[17188] Forked 21281 +(21281) found +[17187] Forked 21282 +(21282) found +[17186] Forked 21283 +(21283) found +[17185] Forked 21284 +(21284) found +[17184] Forked 21285 +(21285) found +[17183] Forked 21286 +(21286) found +[17182] Forked 21287 +(21287) found +[17181] Forked 21288 +(21288) found +[17180] Forked 21289 +(21289) found +[17179] Forked 21290 +(21290) found +[17178] Forked 21291 +(21291) found +[17177] Forked 21292 +(21292) found +[17176] Forked 21293 +(21293) found +[17175] Forked 21294 +(21294) found +[17174] Forked 21295 +(21295) found +[17173] Forked 21296 +(21296) found +[17172] Forked 21297 +(21297) found +[17171] Forked 21298 +(21298) found +[17170] Forked 21299 +(21299) found +[17169] Forked 21300 +(21300) found +[17168] Forked 21301 +(21301) found +[17167] Forked 21302 +(21302) found +[17166] Forked 21303 +(21303) found +[17165] Forked 21304 +(21304) found +[17164] Forked 21305 +(21305) found +[17163] Forked 21306 +(21306) found +[17162] Forked 21307 +(21307) found +[17161] Forked 21308 +(21308) found +[17160] Forked 21309 +(21309) found +[17159] Forked 21310 +(21310) found +[17158] Forked 21311 +(21311) found +[17157] Forked 21312 +(21312) found +[17156] Forked 21313 +(21313) found +[17155] Forked 21314 +(21314) found +[17154] Forked 21315 +(21315) found +[17153] Forked 21316 +(21316) found +[17152] Forked 21317 +(21317) found +[17151] Forked 21318 +(21318) found +[17150] Forked 21319 +(21319) found +[17149] Forked 21320 +(21320) found +[17148] Forked 21321 +(21321) found +[17147] Forked 21322 +(21322) found +[17146] Forked 21323 +(21323) found +[17145] Forked 21324 +(21324) found +[17144] Forked 21325 +(21325) found +[17143] Forked 21326 +(21326) found +[17142] Forked 21327 +(21327) found +[17141] Forked 21328 +(21328) found +[17140] Forked 21329 +(21329) found +[17139] Forked 21330 +(21330) found +[17138] Forked 21331 +(21331) found +[17137] Forked 21332 +[17136] Forked 21333 +(21332) found +(21333) found +[17135] Forked 21334 +[17134] Forked 21335 +(21334) found +(21335) found +[17133] Forked 21336 +[17132] Forked 21337 +(21336) found +(21337) found +[17131] Forked 21338 +[17130] Forked 21339 +(21338) found +(21339) found +[17129] Forked 21340 +[17128] Forked 21341 +(21340) found +(21341) found +[17127] Forked 21342 +[17126] Forked 21343 +(21342) found +(21343) found +[17125] Forked 21344 +[17124] Forked 21345 +(21344) found +(21345) found +[17123] Forked 21346 +[17122] Forked 21347 +(21346) found +(21347) found +[17121] Forked 21348 +[17120] Forked 21349 +(21348) found +(21349) found +[17119] Forked 21350 +[17118] Forked 21351 +(21350) found +(21351) found +[17117] Forked 21352 +[17116] Forked 21353 +(21352) found +(21353) found +[17115] Forked 21354 +[17114] Forked 21355 +(21354) found +(21355) found +[17113] Forked 21356 +[17112] Forked 21357 +(21356) found +(21357) found +[17111] Forked 21358 +[17110] Forked 21359 +(21358) found +(21359) found +[17109] Forked 21360 +[17108] Forked 21361 +(21360) found +(21361) found +[17107] Forked 21362 +[17106] Forked 21363 +(21362) found +(21363) found +[17105] Forked 21364 +[17104] Forked 21365 +(21364) found +(21365) found +[17103] Forked 21366 +[17102] Forked 21367 +(21366) found +(21367) found +[17101] Forked 21368 +[17100] Forked 21369 +(21368) found +(21369) found +[17099] Forked 21370 +[17098] Forked 21371 +(21370) found +(21371) found +[17097] Forked 21372 +[17096] Forked 21373 +(21372) found +(21373) found +[17095] Forked 21374 +[17094] Forked 21375 +(21374) found +(21375) found +[17093] Forked 21376 +[17092] Forked 21377 +(21376) found +(21377) found +[17091] Forked 21378 +[17090] Forked 21379 +(21379) found +(21378) found +[17089] Forked 21380 +(21380) found +[17088] Forked 21381 +(21381) found +[17087] Forked 21382 +(21382) found +[17086] Forked 21383 +(21383) found +[17085] Forked 21384 +(21384) found +[17084] Forked 21385 +(21385) found +[17083] Forked 21386 +(21386) found +[17082] Forked 21387 +(21387) found +[17081] Forked 21388 +(21388) found +[17080] Forked 21389 +(21389) found +[17079] Forked 21390 +(21390) found +[17078] Forked 21391 +(21391) found +[17077] Forked 21392 +(21392) found +[17076] Forked 21393 +(21393) found +[17075] Forked 21394 +(21394) found +[17074] Forked 21395 +(21395) found +[17073] Forked 21396 +(21396) found +[17072] Forked 21397 +(21397) found +[17071] Forked 21398 +(21398) found +[17070] Forked 21399 +(21399) found +[17069] Forked 21400 +(21400) found +[17068] Forked 21401 +(21401) found +[17067] Forked 21402 +(21402) found +[17066] Forked 21403 +(21403) found +[17065] Forked 21404 +(21404) found +[17064] Forked 21405 +(21405) found +[17063] Forked 21406 +(21406) found +[17062] Forked 21407 +(21407) found +[17061] Forked 21408 +(21408) found +[17060] Forked 21409 +(21409) found +[17059] Forked 21410 +(21410) found +[17058] Forked 21411 +(21411) found +[17057] Forked 21412 +(21412) found +[17056] Forked 21413 +[17055] Forked 21414 +(21413) found +(21414) found +[17054] Forked 21415 +[17053] Forked 21416 +(21415) found +(21416) found +[17052] Forked 21417 +[17051] Forked 21418 +(21417) found +(21418) found +[17050] Forked 21419 +[17049] Forked 21420 +(21419) found +(21420) found +[17048] Forked 21421 +[17047] Forked 21422 +(21421) found +(21422) found +[17046] Forked 21423 +[17045] Forked 21424 +(21423) found +(21424) found +[17044] Forked 21425 +[17043] Forked 21426 +(21425) found +(21426) found +[17042] Forked 21427 +[17041] Forked 21428 +(21427) found +(21428) found +[17040] Forked 21429 +[17039] Forked 21430 +(21429) found +(21430) found +[17038] Forked 21431 +[17037] Forked 21432 +(21431) found +(21432) found +[17036] Forked 21433 +[17035] Forked 21434 +(21433) found +(21434) found +[17034] Forked 21435 +[17033] Forked 21436 +(21435) found +(21436) found +[17032] Forked 21437 +[17031] Forked 21438 +(21437) found +(21438) found +[17030] Forked 21439 +[17029] Forked 21440 +(21439) found +(21440) found +[17028] Forked 21441 +[17027] Forked 21442 +(21441) found +(21442) found +[17026] Forked 21443 +[17025] Forked 21444 +(21443) found +(21444) found +[17024] Forked 21445 +[17023] Forked 21446 +(21445) found +(21446) found +[17022] Forked 21447 +[17021] Forked 21448 +(21447) found +(21448) found +[17020] Forked 21449 +[17019] Forked 21450 +(21449) found +(21450) found +[17018] Forked 21451 +[17017] Forked 21452 +(21451) found +(21452) found +[17016] Forked 21453 +[17015] Forked 21454 +(21454) found +(21453) found +[17014] Forked 21455 +(21455) found +[17013] Forked 21456 +(21456) found +[17012] Forked 21457 +(21457) found +[17011] Forked 21458 +(21458) found +[17010] Forked 21459 +(21459) found +[17009] Forked 21460 +(21460) found +[17008] Forked 21461 +(21461) found +[17007] Forked 21462 +(21462) found +[17006] Forked 21463 +(21463) found +[17005] Forked 21464 +(21464) found +[17004] Forked 21465 +(21465) found +[17003] Forked 21466 +(21466) found +[17002] Forked 21467 +(21467) found +[17001] Forked 21468 +(21468) found +[17000] Forked 21469 +(21469) found +[16999] Forked 21470 +(21470) found +[16998] Forked 21471 +(21471) found +[16997] Forked 21472 +(21472) found +[16996] Forked 21473 +(21473) found +[16995] Forked 21474 +(21474) found +[16994] Forked 21475 +(21475) found +[16993] Forked 21476 +(21476) found +[16992] Forked 21477 +(21477) found +[16991] Forked 21478 +(21478) found +[16990] Forked 21479 +(21479) found +[16989] Forked 21480 +(21480) found +[16988] Forked 21481 +(21481) found +[16987] Forked 21482 +(21482) found +[16986] Forked 21483 +(21483) found +[16985] Forked 21484 +(21484) found +[16984] Forked 21485 +(21485) found +[16983] Forked 21486 +(21486) found +[16982] Forked 21487 +(21487) found +[16981] Forked 21488 +(21488) found +[16980] Forked 21489 +(21489) found +[16979] Forked 21490 +[16978] Forked 21491 +(21490) found +(21491) found +[16977] Forked 21492 +[16976] Forked 21493 +(21492) found +(21493) found +[16975] Forked 21494 +[16974] Forked 21495 +(21494) found +(21495) found +[16973] Forked 21496 +[16972] Forked 21497 +(21496) found +(21497) found +[16971] Forked 21498 +[16970] Forked 21499 +(21498) found +(21499) found +[16969] Forked 21500 +[16968] Forked 21501 +(21500) found +(21501) found +[16967] Forked 21502 +[16966] Forked 21503 +(21502) found +(21503) found +[16965] Forked 21504 +[16964] Forked 21505 +(21504) found +(21505) found +[16963] Forked 21506 +[16962] Forked 21507 +(21506) found +(21507) found +[16961] Forked 21508 +[16960] Forked 21509 +(21508) found +(21509) found +[16959] Forked 21510 +[16958] Forked 21511 +(21510) found +(21511) found +[16957] Forked 21512 +[16956] Forked 21513 +(21512) found +(21513) found +[16955] Forked 21514 +[16954] Forked 21515 +(21514) found +(21515) found +[16953] Forked 21516 +[16952] Forked 21517 +(21516) found +(21517) found +[16951] Forked 21518 +[16950] Forked 21519 +(21518) found +(21519) found +[16949] Forked 21520 +[16948] Forked 21521 +(21520) found +(21521) found +[16947] Forked 21522 +[16946] Forked 21523 +(21522) found +(21523) found +[16945] Forked 21524 +[16944] Forked 21525 +(21524) found +(21525) found +[16943] Forked 21526 +[16942] Forked 21527 +(21526) found +(21527) found +[16941] Forked 21528 +[16940] Forked 21529 +(21528) found +(21529) found +[16939] Forked 21530 +[16938] Forked 21531 +(21530) found +(21531) found +[16937] Forked 21532 +[16936] Forked 21533 +(21532) found +(21533) found +[16935] Forked 21534 +[16934] Forked 21535 +(21534) found +(21535) found +[16933] Forked 21536 +[16932] Forked 21537 +(21536) found +(21537) found +[16931] Forked 21538 +[16930] Forked 21539 +(21538) found +(21539) found +[16929] Forked 21540 +[16928] Forked 21541 +(21540) found +(21541) found +[16927] Forked 21542 +[16926] Forked 21543 +(21542) found +(21543) found +[16925] Forked 21544 +[16924] Forked 21545 +(21544) found +(21545) found +[16923] Forked 21546 +[16922] Forked 21547 +(21546) found +(21547) found +[16921] Forked 21548 +[16920] Forked 21549 +(21548) found +(21549) found +[16919] Forked 21550 +[16918] Forked 21551 +(21550) found +(21551) found +[16917] Forked 21552 +[16916] Forked 21553 +(21552) found +(21553) found +[16915] Forked 21554 +[16914] Forked 21555 +(21554) found +(21555) found +[16913] Forked 21556 +[16912] Forked 21557 +(21556) found +(21557) found +[16911] Forked 21558 +[16910] Forked 21559 +(21558) found +(21559) found +[16909] Forked 21560 +[16908] Forked 21561 +(21560) found +(21561) found +[16907] Forked 21562 +[16906] Forked 21563 +(21562) found +(21563) found +[16905] Forked 21564 +[16904] Forked 21565 +(21564) found +(21565) found +[16903] Forked 21566 +[16902] Forked 21567 +(21566) found +(21567) found +[16901] Forked 21568 +[16900] Forked 21569 +(21568) found +(21569) found +[16899] Forked 21570 +[16898] Forked 21571 +(21570) found +(21571) found +[16897] Forked 21572 +[16896] Forked 21573 +(21572) found +(21573) found +[16895] Forked 21574 +[16894] Forked 21575 +(21574) found +(21575) found +[16893] Forked 21576 +[16892] Forked 21577 +(21576) found +(21577) found +[16891] Forked 21578 +[16890] Forked 21579 +(21578) found +(21579) found +[16889] Forked 21580 +[16888] Forked 21581 +(21580) found +(21581) found +[16887] Forked 21582 +[16886] Forked 21583 +(21582) found +(21583) found +[16885] Forked 21584 +[16884] Forked 21585 +(21584) found +(21585) found +[16883] Forked 21586 +[16882] Forked 21587 +(21586) found +(21587) found +[16881] Forked 21588 +[16880] Forked 21589 +(21588) found +(21589) found +[16879] Forked 21590 +[16878] Forked 21591 +(21590) found +(21591) found +[16877] Forked 21592 +[16876] Forked 21593 +(21592) found +(21593) found +[16875] Forked 21594 +[16874] Forked 21595 +(21594) found +(21595) found +[16873] Forked 21596 +[16872] Forked 21597 +(21596) found +(21597) found +[16871] Forked 21598 +[16870] Forked 21599 +(21598) found +(21599) found +[16869] Forked 21600 +[16868] Forked 21601 +(21600) found +(21601) found +[16867] Forked 21602 +[16866] Forked 21603 +(21602) found +(21603) found +[16865] Forked 21604 +[16864] Forked 21605 +(21604) found +(21605) found +[16863] Forked 21606 +[16862] Forked 21607 +(21606) found +(21607) found +[16861] Forked 21608 +[16860] Forked 21609 +(21608) found +(21609) found +[16859] Forked 21610 +[16858] Forked 21611 +(21610) found +(21611) found +[16857] Forked 21612 +[16856] Forked 21613 +(21612) found +(21613) found +[16855] Forked 21614 +[16854] Forked 21615 +(21614) found +(21615) found +[16853] Forked 21616 +[16852] Forked 21617 +(21616) found +(21617) found +[16851] Forked 21618 +[16850] Forked 21619 +(21618) found +(21619) found +[16849] Forked 21620 +[16848] Forked 21621 +(21620) found +(21621) found +[16847] Forked 21622 +[16846] Forked 21623 +(21622) found +(21623) found +[16845] Forked 21624 +[16844] Forked 21625 +(21624) found +(21625) found +[16843] Forked 21626 +[16842] Forked 21627 +(21626) found +(21627) found +[16841] Forked 21628 +[16840] Forked 21630 +(21628) found +(21630) found +[16839] Forked 21631 +(21631) found +[16838] Forked 21632 +(21632) found +[16837] Forked 21633 +(21633) found +[16836] Forked 21634 +(21634) found +[16835] Forked 21635 +(21635) found +[16834] Forked 21636 +(21636) found +[16833] Forked 21637 +(21637) found +[16832] Forked 21638 +(21638) found +[16831] Forked 21639 +(21639) found +[16830] Forked 21640 +(21640) found +[16829] Forked 21641 +(21641) found +[16828] Forked 21642 +(21642) found +[16827] Forked 21643 +(21643) found +[16826] Forked 21644 +(21644) found +[16825] Forked 21645 +(21645) found +[16824] Forked 21646 +(21646) found +[16823] Forked 21647 +(21647) found +[16822] Forked 21648 +(21648) found +[16821] Forked 21649 +(21649) found +[16820] Forked 21650 +(21650) found +[16819] Forked 21651 +(21651) found +[16818] Forked 21652 +(21652) found +[16817] Forked 21653 +(21653) found +[16816] Forked 21654 +(21654) found +[16815] Forked 21655 +(21655) found +[16814] Forked 21656 +(21656) found +[16813] Forked 21657 +(21657) found +[16812] Forked 21658 +(21658) found +[16811] Forked 21659 +(21659) found +[16810] Forked 21660 +[16809] Forked 21661 +(21660) found +(21661) found +[16808] Forked 21662 +[16807] Forked 21663 +(21662) found +(21663) found +[16806] Forked 21664 +[16805] Forked 21665 +(21664) found +(21665) found +[16804] Forked 21666 +[16803] Forked 21667 +(21666) found +(21667) found +[16802] Forked 21668 +[16801] Forked 21669 +(21668) found +(21669) found +[16800] Forked 21670 +[16799] Forked 21671 +(21670) found +(21671) found +[16798] Forked 21672 +[16797] Forked 21673 +(21672) found +(21673) found +[16796] Forked 21674 +[16795] Forked 21675 +(21674) found +(21675) found +[16794] Forked 21676 +[16793] Forked 21677 +(21676) found +(21677) found +[16792] Forked 21678 +[16791] Forked 21679 +(21678) found +(21679) found +[16790] Forked 21680 +[16789] Forked 21681 +(21680) found +(21681) found +[16788] Forked 21682 +[16787] Forked 21683 +(21682) found +(21683) found +[16786] Forked 21684 +[16785] Forked 21685 +(21684) found +(21685) found +[16784] Forked 21686 +[16783] Forked 21687 +(21686) found +(21687) found +[16782] Forked 21688 +[16781] Forked 21689 +(21688) found +(21689) found +[16780] Forked 21690 +[16779] Forked 21691 +(21690) found +(21691) found +[16778] Forked 21692 +[16777] Forked 21693 +(21692) found +(21693) found +[16776] Forked 21694 +[16775] Forked 21695 +(21694) found +(21695) found +[16774] Forked 21696 +[16773] Forked 21697 +(21696) found +(21697) found +[16772] Forked 21698 +(21698) found +[16771] Forked 21699 +[16770] Forked 21700 +(21699) found +(21700) found +[16769] Forked 21701 +[16768] Forked 21702 +(21701) found +(21702) found +[16767] Forked 21703 +[16766] Forked 21704 +(21703) found +(21704) found +[16765] Forked 21705 +[16764] Forked 21706 +(21705) found +(21706) found +[16763] Forked 21707 +[16762] Forked 21708 +(21707) found +(21708) found +[16761] Forked 21709 +[16760] Forked 21710 +(21709) found +(21710) found +[16759] Forked 21711 +[16758] Forked 21712 +(21711) found +(21712) found +[16757] Forked 21713 +[16756] Forked 21714 +(21713) found +(21714) found +[16755] Forked 21715 +[16754] Forked 21716 +(21715) found +(21716) found +[16753] Forked 21717 +[16752] Forked 21718 +(21717) found +(21718) found +[16751] Forked 21719 +[16750] Forked 21720 +(21719) found +(21720) found +[16749] Forked 21721 +[16748] Forked 21722 +(21721) found +(21722) found +[16747] Forked 21723 +[16746] Forked 21724 +(21723) found +(21724) found +[16745] Forked 21725 +[16744] Forked 21726 +(21725) found +(21726) found +[16743] Forked 21727 +[16742] Forked 21728 +(21727) found +(21728) found +[16741] Forked 21729 +[16740] Forked 21730 +(21729) found +(21730) found +[16739] Forked 21731 +[16738] Forked 21732 +(21731) found +(21732) found +[16737] Forked 21733 +[16736] Forked 21734 +(21733) found +(21734) found +[16735] Forked 21735 +[16734] Forked 21736 +(21735) found +(21736) found +[16733] Forked 21737 +[16732] Forked 21738 +(21737) found +(21738) found +[16731] Forked 21739 +[16730] Forked 21740 +(21739) found +(21740) found +[16729] Forked 21741 +[16728] Forked 21742 +(21741) found +(21742) found +[16727] Forked 21743 +[16726] Forked 21744 +(21743) found +(21744) found +[16725] Forked 21745 +[16724] Forked 21746 +(21745) found +(21746) found +[16723] Forked 21747 +[16722] Forked 21749 +(21747) found +(21749) found +[16721] Forked 21750 +(21750) found +[16720] Forked 21751 +(21751) found +[16719] Forked 21752 +(21752) found +[16718] Forked 21753 +(21753) found +[16717] Forked 21754 +(21754) found +[16716] Forked 21755 +(21755) found +[16715] Forked 21756 +(21756) found +[16714] Forked 21757 +(21757) found +[16713] Forked 21758 +(21758) found +[16712] Forked 21759 +(21759) found +[16711] Forked 21760 +(21760) found +[16710] Forked 21761 +(21761) found +[16709] Forked 21762 +(21762) found +[16708] Forked 21763 +(21763) found +[16707] Forked 21764 +(21764) found +[16706] Forked 21765 +(21765) found +[16705] Forked 21766 +(21766) found +[16704] Forked 21767 +(21767) found +[16703] Forked 21768 +(21768) found +[16702] Forked 21769 +(21769) found +[16701] Forked 21770 +(21770) found +[16700] Forked 21771 +(21771) found +[16699] Forked 21772 +(21772) found +[16698] Forked 21773 +(21773) found +[16697] Forked 21774 +(21774) found +[16696] Forked 21775 +(21775) found +[16695] Forked 21776 +(21776) found +[16694] Forked 21777 +(21777) found +[16693] Forked 21778 +(21778) found +[16692] Forked 21779 +(21779) found +[16691] Forked 21780 +(21780) found +[16690] Forked 21781 +(21781) found +[16689] Forked 21782 +(21782) found +[16688] Forked 21783 +(21783) found +[16687] Forked 21784 +(21784) found +[16686] Forked 21785 +(21785) found +[16685] Forked 21786 +(21786) found +[16684] Forked 21787 +[16683] Forked 21788 +(21787) found +(21788) found +[16682] Forked 21789 +[16681] Forked 21790 +(21789) found +(21790) found +[16680] Forked 21791 +[16679] Forked 21792 +(21791) found +(21792) found +[16678] Forked 21793 +[16677] Forked 21794 +(21793) found +(21794) found +[16676] Forked 21795 +[16675] Forked 21796 +(21795) found +(21796) found +[16674] Forked 21797 +[16673] Forked 21798 +(21797) found +(21798) found +[16672] Forked 21799 +[16671] Forked 21800 +(21799) found +(21800) found +[16670] Forked 21801 +[16669] Forked 21802 +(21801) found +(21802) found +[16668] Forked 21803 +[16667] Forked 21804 +(21803) found +(21804) found +[16666] Forked 21805 +[16665] Forked 21806 +(21805) found +(21806) found +[16664] Forked 21807 +[16663] Forked 21808 +(21807) found +(21808) found +[16662] Forked 21809 +[16661] Forked 21810 +(21809) found +(21810) found +[16660] Forked 21811 +[16659] Forked 21812 +(21811) found +(21812) found +[16658] Forked 21813 +[16657] Forked 21814 +(21813) found +(21814) found +[16656] Forked 21815 +[16655] Forked 21816 +(21815) found +(21816) found +[16654] Forked 21817 +[16653] Forked 21818 +(21817) found +(21818) found +[16652] Forked 21819 +[16651] Forked 21820 +(21819) found +(21820) found +[16650] Forked 21821 +[16649] Forked 21822 +(21821) found +(21822) found +[16648] Forked 21823 +[16647] Forked 21824 +(21823) found +(21824) found +[16646] Forked 21825 +[16645] Forked 21826 +(21825) found +(21826) found +[16644] Forked 21827 +[16643] Forked 21828 +(21827) found +(21828) found +[16642] Forked 21829 +[16641] Forked 21830 +(21829) found +(21830) found +[16640] Forked 21831 +[16639] Forked 21832 +(21831) found +(21832) found +[16638] Forked 21833 +[16637] Forked 21834 +(21833) found +(21834) found +[16636] Forked 21835 +[16635] Forked 21836 +(21835) found +(21836) found +[16634] Forked 21837 +[16633] Forked 21838 +(21837) found +(21838) found +[16632] Forked 21839 +[16631] Forked 21840 +(21839) found +(21840) found +[16630] Forked 21841 +[16629] Forked 21842 +(21841) found +(21842) found +[16628] Forked 21843 +[16627] Forked 21844 +(21843) found +(21844) found +[16626] Forked 21845 +[16625] Forked 21846 +(21845) found +(21846) found +[16624] Forked 21847 +[16623] Forked 21848 +(21847) found +(21848) found +[16622] Forked 21849 +[16621] Forked 21850 +(21849) found +(21850) found +[16620] Forked 21851 +[16619] Forked 21852 +(21851) found +(21852) found +[16618] Forked 21853 +[16617] Forked 21854 +(21853) found +(21854) found +[16616] Forked 21855 +[16615] Forked 21856 +(21855) found +(21856) found +[16614] Forked 21857 +[16613] Forked 21858 +(21857) found +(21858) found +[16612] Forked 21859 +[16611] Forked 21860 +(21859) found +(21860) found +[16610] Forked 21861 +[16609] Forked 21862 +(21861) found +(21862) found +[16608] Forked 21863 +[16607] Forked 21864 +(21863) found +(21864) found +[16606] Forked 21865 +[16605] Forked 21867 +(21865) found +(21867) found +[16604] Forked 21868 +(21868) found +[16603] Forked 21869 +(21869) found +[16602] Forked 21870 +(21870) found +[16601] Forked 21871 +(21871) found +[16600] Forked 21872 +(21872) found +[16599] Forked 21873 +(21873) found +[16598] Forked 21874 +(21874) found +[16597] Forked 21875 +(21875) found +[16596] Forked 21876 +(21876) found +[16595] Forked 21877 +(21877) found +[16594] Forked 21878 +(21878) found +[16593] Forked 21879 +(21879) found +[16592] Forked 21880 +(21880) found +[16591] Forked 21881 +(21881) found +[16590] Forked 21882 +(21882) found +[16589] Forked 21883 +(21883) found +[16588] Forked 21884 +(21884) found +[16587] Forked 21885 +(21885) found +[16586] Forked 21886 +(21886) found +[16585] Forked 21887 +(21887) found +[16584] Forked 21888 +(21888) found +[16583] Forked 21889 +(21889) found +[16582] Forked 21890 +(21890) found +[16581] Forked 21891 +(21891) found +[16580] Forked 21892 +(21892) found +[16579] Forked 21893 +(21893) found +[16578] Forked 21894 +(21894) found +[16577] Forked 21895 +(21895) found +[16576] Forked 21896 +(21896) found +[16575] Forked 21897 +(21897) found +[16574] Forked 21898 +(21898) found +[16573] Forked 21899 +(21899) found +[16572] Forked 21900 +(21900) found +[16571] Forked 21901 +(21901) found +[16570] Forked 21902 +(21902) found +[16569] Forked 21903 +(21903) found +[16568] Forked 21904 +(21904) found +[16567] Forked 21905 +(21905) found +[16566] Forked 21906 +(21906) found +[16565] Forked 21907 +(21907) found +[16564] Forked 21908 +(21908) found +[16563] Forked 21909 +(21909) found +[16562] Forked 21910 +(21910) found +[16561] Forked 21911 +(21911) found +[16560] Forked 21912 +(21912) found +[16559] Forked 21913 +(21913) found +[16558] Forked 21914 +[16557] Forked 21915 +(21914) found +(21915) found +[16556] Forked 21916 +[16555] Forked 21917 +(21916) found +(21917) found +[16554] Forked 21918 +[16553] Forked 21919 +(21918) found +(21919) found +[16552] Forked 21920 +[16551] Forked 21921 +(21920) found +(21921) found +[16550] Forked 21922 +[16549] Forked 21923 +(21922) found +(21923) found +[16548] Forked 21924 +[16547] Forked 21925 +(21924) found +(21925) found +[16546] Forked 21926 +[16545] Forked 21927 +(21926) found +(21927) found +[16544] Forked 21928 +[16543] Forked 21929 +(21928) found +(21929) found +[16542] Forked 21930 +[16541] Forked 21931 +(21930) found +(21931) found +[16540] Forked 21932 +[16539] Forked 21933 +(21932) found +(21933) found +[16538] Forked 21934 +[16537] Forked 21935 +(21934) found +(21935) found +[16536] Forked 21936 +[16535] Forked 21937 +(21936) found +(21937) found +[16534] Forked 21938 +[16533] Forked 21939 +(21938) found +(21939) found +[16532] Forked 21940 +[16531] Forked 21941 +(21940) found +(21941) found +[16530] Forked 21942 +[16529] Forked 21943 +(21942) found +(21943) found +[16528] Forked 21944 +[16527] Forked 21945 +(21944) found +(21945) found +[16526] Forked 21946 +[16525] Forked 21947 +(21946) found +(21947) found +[16524] Forked 21948 +[16523] Forked 21949 +(21948) found +(21949) found +[16522] Forked 21950 +[16521] Forked 21951 +(21950) found +(21951) found +[16520] Forked 21952 +[16519] Forked 21953 +(21952) found +(21953) found +[16518] Forked 21954 +[16517] Forked 21955 +(21954) found +(21955) found +[16516] Forked 21956 +[16515] Forked 21957 +(21956) found +(21957) found +[16514] Forked 21958 +(21958) found +[16513] Forked 21959 +(21959) found +[16512] Forked 21960 +(21960) found +[16511] Forked 21961 +(21961) found +[16510] Forked 21962 +(21962) found +[16509] Forked 21963 +(21963) found +[16508] Forked 21964 +(21964) found +[16507] Forked 21965 +(21965) found +[16506] Forked 21966 +(21966) found +[16505] Forked 21967 +(21967) found +[16504] Forked 21968 +(21968) found +[16503] Forked 21969 +(21969) found +[16502] Forked 21970 +(21970) found +[16501] Forked 21971 +(21971) found +[16500] Forked 21972 +(21972) found +[16499] Forked 21973 +(21973) found +[16498] Forked 21974 +(21974) found +[16497] Forked 21975 +(21975) found +[16496] Forked 21976 +(21976) found +[16495] Forked 21977 +(21977) found +[16494] Forked 21978 +(21978) found +[16493] Forked 21979 +(21979) found +[16492] Forked 21980 +(21980) found +[16491] Forked 21981 +(21981) found +[16490] Forked 21982 +(21982) found +[16489] Forked 21983 +(21983) found +[16488] Forked 21984 +(21984) found +[16487] Forked 21985 +(21985) found +[16486] Forked 21986 +(21986) found +[16485] Forked 21987 +(21987) found +[16484] Forked 21988 +(21988) found +[16483] Forked 21989 +(21989) found +[16482] Forked 21990 +(21990) found +[16481] Forked 21991 +(21991) found +[16480] Forked 21992 +(21992) found +[16479] Forked 21993 +(21993) found +[16478] Forked 21994 +(21994) found +[16477] Forked 21995 +[16476] Forked 21996 +(21995) found +(21996) found +[16475] Forked 21997 +[16474] Forked 21998 +(21997) found +(21998) found +[16473] Forked 21999 +[16472] Forked 22000 +(21999) found +(22000) found +[16471] Forked 22001 +[16470] Forked 22002 +(22001) found +(22002) found +[16469] Forked 22003 +[16468] Forked 22004 +(22003) found +(22004) found +[16467] Forked 22005 +[16466] Forked 22006 +(22005) found +(22006) found +[16465] Forked 22007 +[16464] Forked 22008 +(22007) found +(22008) found +[16463] Forked 22009 +[16462] Forked 22010 +(22009) found +(22010) found +[16461] Forked 22011 +[16460] Forked 22012 +(22011) found +(22012) found +[16459] Forked 22013 +[16458] Forked 22014 +(22013) found +(22014) found +[16457] Forked 22015 +[16456] Forked 22016 +(22015) found +(22016) found +[16455] Forked 22017 +[16454] Forked 22018 +(22017) found +(22018) found +[16453] Forked 22019 +[16452] Forked 22020 +(22019) found +(22020) found +[16451] Forked 22021 +[16450] Forked 22022 +(22021) found +(22022) found +[16449] Forked 22023 +[16448] Forked 22024 +(22023) found +(22024) found +[16447] Forked 22025 +[16446] Forked 22026 +(22025) found +(22026) found +[16445] Forked 22027 +[16444] Forked 22028 +(22027) found +(22028) found +[16443] Forked 22029 +[16442] Forked 22030 +(22029) found +(22030) found +[16441] Forked 22031 +[16440] Forked 22032 +(22031) found +(22032) found +[16439] Forked 22033 +[16438] Forked 22034 +(22033) found +(22034) found +[16437] Forked 22035 +[16436] Forked 22037 +(22035) found +(22037) found +[16435] Forked 22038 +(22038) found +[16434] Forked 22039 +(22039) found +[16433] Forked 22040 +(22040) found +[16432] Forked 22041 +(22041) found +[16431] Forked 22042 +(22042) found +[16430] Forked 22043 +(22043) found +[16429] Forked 22044 +(22044) found +[16428] Forked 22045 +(22045) found +[16427] Forked 22046 +(22046) found +[16426] Forked 22047 +(22047) found +[16425] Forked 22048 +(22048) found +[16424] Forked 22049 +(22049) found +[16423] Forked 22050 +(22050) found +[16422] Forked 22051 +(22051) found +[16421] Forked 22052 +(22052) found +[16420] Forked 22053 +(22053) found +[16419] Forked 22054 +(22054) found +[16418] Forked 22055 +(22055) found +[16417] Forked 22056 +(22056) found +[16416] Forked 22057 +(22057) found +[16415] Forked 22058 +(22058) found +[16414] Forked 22059 +(22059) found +[16413] Forked 22060 +(22060) found +[16412] Forked 22061 +(22061) found +[16411] Forked 22062 +(22062) found +[16410] Forked 22063 +(22063) found +[16409] Forked 22064 +(22064) found +[16408] Forked 22065 +(22065) found +[16407] Forked 22066 +(22066) found +[16406] Forked 22067 +(22067) found +[16405] Forked 22068 +(22068) found +[16404] Forked 22069 +(22069) found +[16403] Forked 22070 +(22070) found +[16402] Forked 22071 +(22071) found +[16401] Forked 22072 +(22072) found +[16400] Forked 22073 +(22073) found +[16399] Forked 22074 +(22074) found +[16398] Forked 22075 +(22075) found +[16397] Forked 22076 +(22076) found +[16396] Forked 22077 +[16395] Forked 22078 +(22077) found +(22078) found +[16394] Forked 22079 +[16393] Forked 22080 +(22079) found +(22080) found +[16392] Forked 22081 +[16391] Forked 22082 +(22081) found +(22082) found +[16390] Forked 22083 +[16389] Forked 22084 +(22083) found +(22084) found +[16388] Forked 22085 +[16387] Forked 22086 +(22085) found +(22086) found +[16386] Forked 22087 +[16385] Forked 22088 +(22087) found +(22088) found +[16384] Forked 22089 +[16383] Forked 22090 +(22089) found +(22090) found +[16382] Forked 22091 +[16381] Forked 22092 +(22091) found +(22092) found +[16380] Forked 22093 +[16379] Forked 22094 +(22093) found +(22094) found +[16378] Forked 22095 +[16377] Forked 22096 +(22095) found +(22096) found +[16376] Forked 22097 +[16375] Forked 22098 +(22097) found +(22098) found +[16374] Forked 22099 +[16373] Forked 22100 +(22099) found +(22100) found +[16372] Forked 22101 +[16371] Forked 22102 +(22101) found +(22102) found +[16370] Forked 22103 +[16369] Forked 22104 +(22103) found +(22104) found +[16368] Forked 22105 +[16367] Forked 22106 +(22105) found +(22106) found +[16366] Forked 22107 +[16365] Forked 22108 +(22107) found +(22108) found +[16364] Forked 22109 +[16363] Forked 22110 +(22109) found +(22110) found +[16362] Forked 22111 +[16361] Forked 22112 +(22111) found +(22112) found +[16360] Forked 22113 +[16359] Forked 22114 +(22113) found +(22114) found +[16358] Forked 22115 +[16357] Forked 22116 +(22115) found +(22116) found +[16356] Forked 22117 +[16355] Forked 22118 +(22117) found +(22118) found +[16354] Forked 22119 +[16353] Forked 22120 +(22119) found +(22120) found +[16352] Forked 22121 +[16351] Forked 22123 +(22121) found +(22123) found +[16350] Forked 22124 +(22124) found +[16349] Forked 22125 +(22125) found +[16348] Forked 22126 +(22126) found +[16347] Forked 22127 +(22127) found +[16346] Forked 22128 +(22128) found +[16345] Forked 22129 +(22129) found +[16344] Forked 22130 +(22130) found +[16343] Forked 22131 +(22131) found +[16342] Forked 22132 +(22132) found +[16341] Forked 22133 +(22133) found +[16340] Forked 22134 +(22134) found +[16339] Forked 22135 +(22135) found +[16338] Forked 22136 +(22136) found +[16337] Forked 22137 +(22137) found +[16336] Forked 22138 +(22138) found +[16335] Forked 22139 +(22139) found +[16334] Forked 22140 +(22140) found +[16333] Forked 22141 +(22141) found +[16332] Forked 22142 +(22142) found +[16331] Forked 22143 +(22143) found +[16330] Forked 22144 +(22144) found +[16329] Forked 22145 +(22145) found +[16328] Forked 22146 +(22146) found +[16327] Forked 22147 +(22147) found +[16326] Forked 22148 +(22148) found +[16325] Forked 22149 +(22149) found +[16324] Forked 22150 +(22150) found +[16323] Forked 22151 +(22151) found +[16322] Forked 22152 +(22152) found +[16321] Forked 22153 +(22153) found +[16320] Forked 22154 +(22154) found +[16319] Forked 22155 +(22155) found +[16318] Forked 22156 +(22156) found +[16317] Forked 22157 +(22157) found +[16316] Forked 22158 +(22158) found +[16315] Forked 22159 +(22159) found +[16314] Forked 22160 +(22160) found +[16313] Forked 22161 +(22161) found +[16312] Forked 22162 +(22162) found +[16311] Forked 22163 +(22163) found +[16310] Forked 22164 +(22164) found +[16309] Forked 22165 +(22165) found +[16308] Forked 22166 +(22166) found +[16307] Forked 22167 +(22167) found +[16306] Forked 22168 +(22168) found +[16305] Forked 22169 +(22169) found +[16304] Forked 22170 +(22170) found +[16303] Forked 22171 +(22171) found +[16302] Forked 22172 +(22172) found +[16301] Forked 22173 +(22173) found +[16300] Forked 22174 +(22174) found +[16299] Forked 22175 +(22175) found +[16298] Forked 22176 +(22176) found +[16297] Forked 22177 +(22177) found +[16296] Forked 22178 +(22178) found +[16295] Forked 22179 +(22179) found +[16294] Forked 22180 +(22180) found +[16293] Forked 22181 +(22181) found +[16292] Forked 22182 +(22182) found +[16291] Forked 22183 +(22183) found +[16290] Forked 22184 +(22184) found +[16289] Forked 22185 +(22185) found +[16288] Forked 22186 +(22186) found +[16287] Forked 22187 +(22187) found +[16286] Forked 22188 +(22188) found +[16285] Forked 22189 +(22189) found +[16284] Forked 22190 +(22190) found +[16283] Forked 22191 +(22191) found +[16282] Forked 22192 +(22192) found +[16281] Forked 22193 +(22193) found +[16280] Forked 22194 +[16279] Forked 22195 +(22194) found +(22195) found +[16278] Forked 22196 +[16277] Forked 22197 +(22196) found +(22197) found +[16276] Forked 22198 +[16275] Forked 22199 +(22198) found +(22199) found +[16274] Forked 22200 +[16273] Forked 22201 +(22200) found +(22201) found +[16272] Forked 22202 +[16271] Forked 22203 +(22202) found +(22203) found +[16270] Forked 22204 +[16269] Forked 22205 +(22204) found +(22205) found +[16268] Forked 22206 +[16267] Forked 22207 +(22206) found +(22207) found +[16266] Forked 22208 +[16265] Forked 22209 +(22208) found +(22209) found +[16264] Forked 22210 +[16263] Forked 22211 +(22210) found +(22211) found +[16262] Forked 22212 +[16261] Forked 22213 +(22212) found +(22213) found +[16260] Forked 22214 +[16259] Forked 22215 +(22214) found +(22215) found +[16258] Forked 22216 +[16257] Forked 22217 +(22216) found +(22217) found +[16256] Forked 22218 +[16255] Forked 22220 +(22218) found +(22220) found +[16254] Forked 22221 +(22221) found +[16253] Forked 22222 +(22222) found +[16252] Forked 22223 +(22223) found +[16251] Forked 22224 +(22224) found +[16250] Forked 22225 +(22225) found +[16249] Forked 22226 +(22226) found +[16248] Forked 22227 +(22227) found +[16247] Forked 22228 +(22228) found +[16246] Forked 22229 +(22229) found +[16245] Forked 22230 +(22230) found +[16244] Forked 22231 +(22231) found +[16243] Forked 22232 +(22232) found +[16242] Forked 22233 +(22233) found +[16241] Forked 22234 +(22234) found +[16240] Forked 22235 +(22235) found +[16239] Forked 22236 +(22236) found +[16238] Forked 22237 +(22237) found +[16237] Forked 22238 +(22238) found +[16236] Forked 22239 +(22239) found +[16235] Forked 22240 +(22240) found +[16234] Forked 22241 +(22241) found +[16233] Forked 22242 +(22242) found +[16232] Forked 22243 +(22243) found +[16231] Forked 22244 +(22244) found +[16230] Forked 22245 +(22245) found +[16229] Forked 22246 +(22246) found +[16228] Forked 22247 +(22247) found +[16227] Forked 22248 +(22248) found +[16226] Forked 22249 +(22249) found +[16225] Forked 22250 +(22250) found +[16224] Forked 22251 +(22251) found +[16223] Forked 22252 +(22252) found +[16222] Forked 22253 +(22253) found +[16221] Forked 22254 +(22254) found +[16220] Forked 22255 +(22255) found +[16219] Forked 22256 +(22256) found +[16218] Forked 22257 +(22257) found +[16217] Forked 22258 +(22258) found +[16216] Forked 22259 +(22259) found +[16215] Forked 22260 +(22260) found +[16214] Forked 22261 +(22261) found +[16213] Forked 22262 +(22262) found +[16212] Forked 22263 +(22263) found +[16211] Forked 22264 +(22264) found +[16210] Forked 22265 +(22265) found +[16209] Forked 22266 +(22266) found +[16208] Forked 22267 +(22267) found +[16207] Forked 22268 +(22268) found +[16206] Forked 22269 +(22269) found +[16205] Forked 22270 +(22270) found +[16204] Forked 22271 +(22271) found +[16203] Forked 22272 +(22272) found +[16202] Forked 22273 +(22273) found +[16201] Forked 22274 +(22274) found +[16200] Forked 22275 +(22275) found +[16199] Forked 22276 +(22276) found +[16198] Forked 22277 +(22277) found +[16197] Forked 22278 +(22278) found +[16196] Forked 22279 +(22279) found +[16195] Forked 22280 +(22280) found +[16194] Forked 22281 +(22281) found +[16193] Forked 22282 +(22282) found +[16192] Forked 22283 +(22283) found +[16191] Forked 22284 +(22284) found +[16190] Forked 22285 +(22285) found +[16189] Forked 22286 +(22286) found +[16188] Forked 22287 +(22287) found +[16187] Forked 22288 +(22288) found +[16186] Forked 22289 +(22289) found +[16185] Forked 22290 +(22290) found +[16184] Forked 22291 +(22291) found +[16183] Forked 22292 +(22292) found +[16182] Forked 22293 +(22293) found +[16181] Forked 22294 +(22294) found +[16180] Forked 22295 +(22295) found +[16179] Forked 22296 +(22296) found +[16178] Forked 22297 +(22297) found +[16177] Forked 22298 +(22298) found +[16176] Forked 22299 +(22299) found +[16175] Forked 22300 +(22300) found +[16174] Forked 22301 +(22301) found +[16173] Forked 22302 +(22302) found +[16172] Forked 22303 +(22303) found +[16171] Forked 22304 +(22304) found +[16170] Forked 22305 +(22305) found +[16169] Forked 22306 +(22306) found +[16168] Forked 22307 +[16167] Forked 22308 +(22307) found +(22308) found +[16166] Forked 22309 +[16165] Forked 22310 +(22309) found +(22310) found +[16164] Forked 22311 +[16163] Forked 22312 +(22311) found +(22312) found +[16162] Forked 22313 +[16161] Forked 22314 +(22313) found +(22314) found +[16160] Forked 22315 +[16159] Forked 22316 +(22315) found +(22316) found +[16158] Forked 22317 +[16157] Forked 22318 +(22317) found +(22318) found +[16156] Forked 22319 +[16155] Forked 22320 +(22319) found +(22320) found +[16154] Forked 22321 +[16153] Forked 22322 +(22321) found +(22322) found +[16152] Forked 22323 +[16151] Forked 22324 +(22323) found +(22324) found +[16150] Forked 22325 +[16149] Forked 22326 +(22325) found +(22326) found +[16148] Forked 22327 +[16147] Forked 22328 +(22327) found +(22328) found +[16146] Forked 22329 +[16145] Forked 22330 +(22329) found +(22330) found +[16144] Forked 22331 +[16143] Forked 22332 +(22331) found +(22332) found +[16142] Forked 22333 +[16141] Forked 22334 +(22333) found +(22334) found +[16140] Forked 22335 +[16139] Forked 22336 +(22335) found +(22336) found +[16138] Forked 22337 +[16137] Forked 22338 +(22337) found +(22338) found +[16136] Forked 22339 +[16135] Forked 22340 +(22339) found +(22340) found +[16134] Forked 22341 +[16133] Forked 22342 +(22341) found +(22342) found +[16132] Forked 22343 +[16131] Forked 22344 +(22343) found +(22344) found +[16130] Forked 22345 +[16129] Forked 22346 +(22345) found +(22346) found +[16128] Forked 22347 +(22347) found +[16127] Forked 22348 +[16126] Forked 22349 +(22348) found +(22349) found +[16125] Forked 22350 +[16124] Forked 22351 +(22350) found +(22351) found +[16123] Forked 22352 +[16122] Forked 22353 +(22352) found +(22353) found +[16121] Forked 22354 +[16120] Forked 22355 +(22354) found +(22355) found +[16119] Forked 22356 +[16118] Forked 22357 +(22356) found +(22357) found +[16117] Forked 22358 +[16116] Forked 22359 +(22358) found +(22359) found +[16115] Forked 22360 +[16114] Forked 22361 +(22360) found +(22361) found +[16113] Forked 22362 +[16112] Forked 22363 +(22362) found +(22363) found +[16111] Forked 22364 +[16110] Forked 22365 +(22364) found +(22365) found +[16109] Forked 22366 +[16108] Forked 22367 +(22366) found +(22367) found +[16107] Forked 22368 +[16106] Forked 22369 +(22368) found +(22369) found +[16105] Forked 22370 +[16104] Forked 22371 +(22370) found +(22371) found +[16103] Forked 22372 +[16102] Forked 22373 +(22372) found +(22373) found +[16101] Forked 22374 +[16100] Forked 22375 +(22374) found +(22375) found +[16099] Forked 22376 +[16098] Forked 22377 +(22376) found +(22377) found +[16097] Forked 22378 +[16096] Forked 22379 +(22378) found +(22379) found +[16095] Forked 22380 +[16094] Forked 22381 +(22380) found +(22381) found +[16093] Forked 22382 +[16092] Forked 22383 +(22382) found +(22383) found +[16091] Forked 22384 +[16090] Forked 22385 +(22384) found +(22385) found +[16089] Forked 22386 +[16088] Forked 22387 +(22386) found +(22387) found +[16087] Forked 22388 +[16086] Forked 22389 +(22388) found +(22389) found +[16085] Forked 22390 +[16084] Forked 22391 +(22390) found +(22391) found +[16083] Forked 22392 +[16082] Forked 22393 +(22392) found +(22393) found +[16081] Forked 22394 +[16080] Forked 22395 +(22394) found +(22395) found +[16079] Forked 22396 +[16078] Forked 22397 +(22396) found +(22397) found +[16077] Forked 22398 +[16076] Forked 22399 +(22398) found +(22399) found +[16075] Forked 22400 +[16074] Forked 22401 +(22400) found +(22401) found +[16073] Forked 22402 +[16072] Forked 22403 +(22402) found +(22403) found +[16071] Forked 22404 +[16070] Forked 22405 +(22404) found +(22405) found +[16069] Forked 22406 +[16068] Forked 22407 +(22406) found +(22407) found +[16067] Forked 22408 +[16066] Forked 22409 +(22408) found +(22409) found +[16065] Forked 22410 +[16064] Forked 22411 +(22410) found +(22411) found +[16063] Forked 22412 +[16062] Forked 22413 +(22412) found +(22413) found +[16061] Forked 22414 +[16060] Forked 22415 +(22414) found +(22415) found +[16059] Forked 22416 +[16058] Forked 22417 +(22416) found +(22417) found +[16057] Forked 22418 +[16056] Forked 22419 +(22418) found +(22419) found +[16055] Forked 22420 +[16054] Forked 22421 +(22420) found +(22421) found +[16053] Forked 22422 +[16052] Forked 22423 +(22422) found +(22423) found +[16051] Forked 22424 +[16050] Forked 22425 +(22424) found +(22425) found +[16049] Forked 22426 +[16048] Forked 22427 +(22426) found +(22427) found +[16047] Forked 22428 +[16046] Forked 22429 +(22428) found +(22429) found +[16045] Forked 22430 +[16044] Forked 22431 +(22430) found +(22431) found +[16043] Forked 22432 +[16042] Forked 22433 +(22432) found +(22433) found +[16041] Forked 22434 +[16040] Forked 22435 +(22434) found +(22435) found +[16039] Forked 22436 +[16038] Forked 22437 +(22436) found +(22437) found +[16037] Forked 22438 +[16036] Forked 22439 +(22438) found +(22439) found +[16035] Forked 22440 +[16034] Forked 22442 +(22440) found +(22442) found +[16033] Forked 22443 +(22443) found +[16032] Forked 22444 +(22444) found +[16031] Forked 22445 +(22445) found +[16030] Forked 22446 +(22446) found +[16029] Forked 22447 +(22447) found +[16028] Forked 22448 +(22448) found +[16027] Forked 22449 +(22449) found +[16026] Forked 22450 +(22450) found +[16025] Forked 22451 +(22451) found +[16024] Forked 22452 +(22452) found +[16023] Forked 22453 +(22453) found +[16022] Forked 22454 +(22454) found +[16021] Forked 22455 +(22455) found +[16020] Forked 22456 +(22456) found +[16019] Forked 22457 +(22457) found +[16018] Forked 22458 +(22458) found +[16017] Forked 22459 +(22459) found +[16016] Forked 22460 +(22460) found +[16015] Forked 22461 +(22461) found +[16014] Forked 22462 +(22462) found +[16013] Forked 22463 +(22463) found +[16012] Forked 22464 +(22464) found +[16011] Forked 22465 +(22465) found +[16010] Forked 22466 +(22466) found +[16009] Forked 22467 +(22467) found +[16008] Forked 22468 +(22468) found +[16007] Forked 22469 +(22469) found +[16006] Forked 22470 +(22470) found +[16005] Forked 22471 +(22471) found +[16004] Forked 22472 +(22472) found +[16003] Forked 22473 +(22473) found +[16002] Forked 22474 +(22474) found +[16001] Forked 22475 +(22475) found +[16000] Forked 22476 +(22476) found +[15999] Forked 22477 +(22477) found +[15998] Forked 22478 +(22478) found +[15997] Forked 22479 +(22479) found +[15996] Forked 22480 +(22480) found +[15995] Forked 22481 +(22481) found +[15994] Forked 22482 +[15993] Forked 22483 +(22482) found +(22483) found +[15992] Forked 22484 +[15991] Forked 22485 +(22484) found +(22485) found +[15990] Forked 22486 +[15989] Forked 22487 +(22486) found +(22487) found +[15988] Forked 22488 +[15987] Forked 22489 +(22488) found +(22489) found +[15986] Forked 22490 +[15985] Forked 22491 +(22490) found +(22491) found +[15984] Forked 22492 +[15983] Forked 22493 +(22492) found +(22493) found +[15982] Forked 22494 +[15981] Forked 22495 +(22494) found +(22495) found +[15980] Forked 22496 +[15979] Forked 22497 +(22496) found +(22497) found +[15978] Forked 22498 +[15977] Forked 22499 +(22498) found +(22499) found +[15976] Forked 22500 +[15975] Forked 22501 +(22500) found +(22501) found +[15974] Forked 22502 +[15973] Forked 22503 +(22502) found +(22503) found +[15972] Forked 22504 +[15971] Forked 22505 +(22504) found +(22505) found +[15970] Forked 22506 +[15969] Forked 22507 +(22506) found +(22507) found +[15968] Forked 22508 +[15967] Forked 22509 +(22508) found +(22509) found +[15966] Forked 22510 +[15965] Forked 22511 +(22510) found +(22511) found +[15964] Forked 22512 +[15963] Forked 22513 +(22512) found +(22513) found +[15962] Forked 22514 +[15961] Forked 22515 +(22514) found +(22515) found +[15960] Forked 22516 +[15959] Forked 22517 +(22516) found +(22517) found +[15958] Forked 22518 +[15957] Forked 22519 +(22518) found +(22519) found +[15956] Forked 22520 +[15955] Forked 22521 +(22520) found +(22521) found +[15954] Forked 22522 +[15953] Forked 22523 +(22522) found +(22523) found +[15952] Forked 22524 +[15951] Forked 22525 +(22524) found +(22525) found +[15950] Forked 22526 +[15949] Forked 22527 +(22526) found +(22527) found +[15948] Forked 22528 +[15947] Forked 22529 +(22528) found +(22529) found +[15946] Forked 22530 +[15945] Forked 22531 +(22530) found +(22531) found +[15944] Forked 22532 +[15943] Forked 22533 +(22532) found +(22533) found +[15942] Forked 22534 +[15941] Forked 22535 +(22534) found +(22535) found +[15940] Forked 22536 +[15939] Forked 22537 +(22536) found +(22537) found +[15938] Forked 22538 +[15937] Forked 22539 +(22538) found +(22539) found +[15936] Forked 22540 +[15935] Forked 22541 +(22540) found +(22541) found +[15934] Forked 22542 +[15933] Forked 22543 +(22542) found +(22543) found +[15932] Forked 22544 +[15931] Forked 22545 +(22544) found +(22545) found +[15930] Forked 22546 +[15929] Forked 22547 +(22546) found +(22547) found +[15928] Forked 22548 +[15927] Forked 22549 +(22548) found +(22549) found +[15926] Forked 22550 +[15925] Forked 22551 +(22550) found +(22551) found +[15924] Forked 22552 +[15923] Forked 22553 +(22552) found +(22553) found +[15922] Forked 22554 +[15921] Forked 22555 +(22554) found +(22555) found +[15920] Forked 22556 +[15919] Forked 22557 +(22556) found +(22557) found +[15918] Forked 22558 +[15917] Forked 22559 +(22558) found +(22559) found +[15916] Forked 22560 +[15915] Forked 22561 +(22560) found +(22561) found +[15914] Forked 22562 +[15913] Forked 22563 +(22562) found +(22563) found +[15912] Forked 22564 +[15911] Forked 22565 +(22564) found +(22565) found +[15910] Forked 22566 +[15909] Forked 22567 +(22566) found +(22567) found +[15908] Forked 22568 +[15907] Forked 22569 +(22568) found +(22569) found +[15906] Forked 22570 +[15905] Forked 22571 +(22570) found +(22571) found +[15904] Forked 22572 +[15903] Forked 22573 +(22572) found +(22573) found +[15902] Forked 22574 +(22574) found +[15901] Forked 22575 +(22575) found +[15900] Forked 22576 +(22576) found +[15899] Forked 22577 +(22577) found +[15898] Forked 22578 +(22578) found +[15897] Forked 22579 +(22579) found +[15896] Forked 22580 +(22580) found +[15895] Forked 22581 +(22581) found +[15894] Forked 22582 +(22582) found +[15893] Forked 22583 +(22583) found +[15892] Forked 22584 +(22584) found +[15891] Forked 22585 +(22585) found +[15890] Forked 22586 +(22586) found +[15889] Forked 22587 +(22587) found +[15888] Forked 22588 +(22588) found +[15887] Forked 22589 +(22589) found +[15886] Forked 22590 +(22590) found +[15885] Forked 22591 +(22591) found +[15884] Forked 22592 +(22592) found +[15883] Forked 22593 +(22593) found +[15882] Forked 22594 +(22594) found +[15881] Forked 22595 +(22595) found +[15880] Forked 22596 +(22596) found +[15879] Forked 22597 +(22597) found +[15878] Forked 22598 +(22598) found +[15877] Forked 22599 +(22599) found +[15876] Forked 22600 +(22600) found +[15875] Forked 22601 +(22601) found +[15874] Forked 22602 +(22602) found +[15873] Forked 22603 +(22603) found +[15872] Forked 22604 +(22604) found +[15871] Forked 22605 +(22605) found +[15870] Forked 22606 +(22606) found +[15869] Forked 22607 +(22607) found +[15868] Forked 22608 +(22608) found +[15867] Forked 22609 +[15866] Forked 22610 +(22609) found +(22610) found +[15865] Forked 22611 +[15864] Forked 22612 +(22611) found +(22612) found +[15863] Forked 22613 +[15862] Forked 22614 +(22613) found +(22614) found +[15861] Forked 22615 +[15860] Forked 22616 +(22615) found +(22616) found +[15859] Forked 22617 +[15858] Forked 22618 +(22617) found +(22618) found +[15857] Forked 22619 +[15856] Forked 22620 +(22619) found +(22620) found +[15855] Forked 22621 +[15854] Forked 22622 +(22621) found +(22622) found +[15853] Forked 22623 +[15852] Forked 22624 +(22623) found +(22624) found +[15851] Forked 22625 +[15850] Forked 22626 +(22625) found +(22626) found +[15849] Forked 22627 +[15848] Forked 22628 +(22627) found +(22628) found +[15847] Forked 22629 +[15846] Forked 22630 +(22629) found +(22630) found +[15845] Forked 22631 +[15844] Forked 22632 +(22631) found +(22632) found +[15843] Forked 22633 +[15842] Forked 22634 +(22633) found +(22634) found +[15841] Forked 22635 +[15840] Forked 22636 +(22635) found +(22636) found +[15839] Forked 22637 +[15838] Forked 22638 +(22637) found +(22638) found +[15837] Forked 22639 +[15836] Forked 22640 +(22639) found +(22640) found +[15835] Forked 22641 +[15834] Forked 22642 +(22641) found +(22642) found +[15833] Forked 22644 +[15832] Forked 22645 +(22644) found +(22645) found +[15831] Forked 22646 +[15830] Forked 22647 +(22646) found +(22647) found +[15829] Forked 22648 +[15828] Forked 22649 +(22648) found +(22649) found +[15827] Forked 22650 +[15826] Forked 22651 +(22650) found +(22651) found +[15825] Forked 22652 +[15824] Forked 22653 +(22652) found +(22653) found +[15823] Forked 22654 +[15822] Forked 22655 +(22654) found +(22655) found +[15821] Forked 22656 +[15820] Forked 22657 +(22656) found +(22657) found +[15819] Forked 22658 +(22658) found +[15818] Forked 22659 +(22659) found +[15817] Forked 22660 +(22660) found +[15816] Forked 22661 +(22661) found +[15815] Forked 22662 +(22662) found +[15814] Forked 22663 +(22663) found +[15813] Forked 22664 +(22664) found +[15812] Forked 22665 +(22665) found +[15811] Forked 22666 +(22666) found +[15810] Forked 22667 +(22667) found +[15809] Forked 22668 +(22668) found +[15808] Forked 22669 +(22669) found +[15807] Forked 22670 +(22670) found +[15806] Forked 22671 +(22671) found +[15805] Forked 22672 +(22672) found +[15804] Forked 22673 +(22673) found +[15803] Forked 22674 +(22674) found +[15802] Forked 22675 +(22675) found +[15801] Forked 22676 +(22676) found +[15800] Forked 22677 +(22677) found +[15799] Forked 22678 +(22678) found +[15798] Forked 22679 +(22679) found +[15797] Forked 22680 +(22680) found +[15796] Forked 22681 +(22681) found +[15795] Forked 22682 +(22682) found +[15794] Forked 22683 +(22683) found +[15793] Forked 22684 +(22684) found +[15792] Forked 22685 +(22685) found +[15791] Forked 22686 +(22686) found +[15790] Forked 22687 +(22687) found +[15789] Forked 22688 +(22688) found +[15788] Forked 22689 +(22689) found +[15787] Forked 22690 +(22690) found +[15786] Forked 22691 +(22691) found +[15785] Forked 22692 +(22692) found +[15784] Forked 22693 +[15783] Forked 22694 +(22693) found +(22694) found +[15782] Forked 22695 +(22695) found +[15781] Forked 22696 +(22696) found +[15780] Forked 22697 +(22697) found +[15779] Forked 22698 +(22698) found +[15778] Forked 22699 +(22699) found +[15777] Forked 22700 +(22700) found +[15776] Forked 22701 +(22701) found +[15775] Forked 22702 +(22702) found +[15774] Forked 22703 +(22703) found +[15773] Forked 22704 +(22704) found +[15772] Forked 22705 +(22705) found +[15771] Forked 22706 +(22706) found +[15770] Forked 22707 +(22707) found +[15769] Forked 22708 +(22708) found +[15768] Forked 22709 +(22709) found +[15767] Forked 22710 +(22710) found +[15766] Forked 22711 +(22711) found +[15765] Forked 22712 +(22712) found +[15764] Forked 22713 +(22713) found +[15763] Forked 22714 +(22714) found +[15762] Forked 22715 +(22715) found +[15761] Forked 22716 +(22716) found +[15760] Forked 22717 +(22717) found +[15759] Forked 22718 +(22718) found +[15758] Forked 22719 +(22719) found +[15757] Forked 22720 +(22720) found +[15756] Forked 22721 +(22721) found +[15755] Forked 22722 +(22722) found +[15754] Forked 22723 +(22723) found +[15753] Forked 22724 +(22724) found +[15752] Forked 22725 +[15751] Forked 22726 +(22725) found +(22726) found +[15750] Forked 22727 +[15749] Forked 22728 +(22727) found +(22728) found +[15748] Forked 22729 +[15747] Forked 22730 +(22729) found +(22730) found +[15746] Forked 22731 +[15745] Forked 22732 +(22731) found +(22732) found +[15744] Forked 22733 +[15743] Forked 22734 +(22733) found +(22734) found +[15742] Forked 22735 +[15741] Forked 22736 +(22735) found +(22736) found +[15740] Forked 22737 +[15739] Forked 22738 +(22737) found +(22738) found +[15738] Forked 22739 +[15737] Forked 22740 +(22739) found +(22740) found +[15736] Forked 22741 +[15735] Forked 22742 +(22741) found +(22742) found +[15734] Forked 22743 +[15733] Forked 22744 +(22743) found +(22744) found +[15732] Forked 22745 +[15731] Forked 22746 +(22745) found +(22746) found +[15730] Forked 22747 +[15729] Forked 22748 +(22747) found +(22748) found +[15728] Forked 22749 +[15727] Forked 22750 +(22749) found +(22750) found +[15726] Forked 22751 +(22751) found +[15725] Forked 22752 +[15724] Forked 22753 +(22752) found +(22753) found +[15723] Forked 22754 +[15722] Forked 22755 +(22754) found +(22755) found +[15721] Forked 22756 +[15720] Forked 22757 +(22756) found +(22757) found +[15719] Forked 22758 +[15718] Forked 22759 +(22758) found +(22759) found +[15717] Forked 22760 +[15716] Forked 22761 +(22760) found +(22761) found +[15715] Forked 22762 +[15714] Forked 22763 +(22762) found +(22763) found +[15713] Forked 22764 +[15712] Forked 22765 +(22764) found +(22765) found +[15711] Forked 22766 +[15710] Forked 22767 +(22766) found +(22767) found +[15709] Forked 22768 +[15708] Forked 22769 +(22768) found +(22769) found +[15707] Forked 22770 +[15706] Forked 22771 +(22771) found +(22770) found +[15705] Forked 22772 +(22772) found +[15704] Forked 22773 +(22773) found +[15703] Forked 22774 +(22774) found +[15702] Forked 22775 +(22775) found +[15701] Forked 22776 +(22776) found +[15700] Forked 22777 +(22777) found +[15699] Forked 22778 +(22778) found +[15698] Forked 22779 +(22779) found +[15697] Forked 22780 +(22780) found +[15696] Forked 22781 +(22781) found +[15695] Forked 22782 +(22782) found +[15694] Forked 22783 +(22783) found +[15693] Forked 22784 +(22784) found +[15692] Forked 22785 +(22785) found +[15691] Forked 22786 +(22786) found +[15690] Forked 22787 +(22787) found +[15689] Forked 22788 +(22788) found +[15688] Forked 22789 +(22789) found +[15687] Forked 22790 +(22790) found +[15686] Forked 22791 +(22791) found +[15685] Forked 22792 +(22792) found +[15684] Forked 22793 +(22793) found +[15683] Forked 22794 +(22794) found +[15682] Forked 22795 +(22795) found +[15681] Forked 22796 +(22796) found +[15680] Forked 22797 +(22797) found +[15679] Forked 22798 +(22798) found +[15678] Forked 22799 +(22799) found +[15677] Forked 22800 +(22800) found +[15676] Forked 22801 +(22801) found +[15675] Forked 22802 +(22802) found +[15674] Forked 22803 +(22803) found +[15673] Forked 22804 +(22804) found +[15672] Forked 22805 +(22805) found +[15671] Forked 22806 +(22806) found +[15670] Forked 22807 +(22807) found +[15669] Forked 22808 +(22808) found +[15668] Forked 22809 +(22809) found +[15667] Forked 22810 +(22810) found +[15666] Forked 22811 +(22811) found +[15665] Forked 22812 +(22812) found +[15664] Forked 22813 +(22813) found +[15663] Forked 22814 +(22814) found +[15662] Forked 22815 +(22815) found +[15661] Forked 22816 +(22816) found +[15660] Forked 22817 +(22817) found +[15659] Forked 22818 +(22818) found +[15658] Forked 22819 +(22819) found +[15657] Forked 22820 +(22820) found +[15656] Forked 22821 +(22821) found +[15655] Forked 22822 +(22822) found +[15654] Forked 22823 +(22823) found +[15653] Forked 22824 +(22824) found +[15652] Forked 22825 +(22825) found +[15651] Forked 22826 +(22826) found +[15650] Forked 22827 +(22827) found +[15649] Forked 22828 +(22828) found +[15648] Forked 22829 +(22829) found +[15647] Forked 22830 +(22830) found +[15646] Forked 22831 +(22831) found +[15645] Forked 22832 +(22832) found +[15644] Forked 22833 +(22833) found +[15643] Forked 22834 +(22834) found +[15642] Forked 22835 +(22835) found +[15641] Forked 22836 +(22836) found +[15640] Forked 22837 +(22837) found +[15639] Forked 22838 +(22838) found +[15638] Forked 22839 +(22839) found +[15637] Forked 22840 +(22840) found +[15636] Forked 22841 +(22841) found +[15635] Forked 22842 +(22842) found +[15634] Forked 22843 +(22843) found +[15633] Forked 22844 +(22844) found +[15632] Forked 22845 +[15631] Forked 22846 +(22845) found +(22846) found +[15630] Forked 22847 +[15629] Forked 22848 +(22847) found +(22848) found +[15628] Forked 22849 +[15627] Forked 22850 +(22849) found +(22850) found +[15626] Forked 22851 +[15625] Forked 22852 +(22851) found +(22852) found +[15624] Forked 22853 +[15623] Forked 22854 +(22853) found +(22854) found +[15622] Forked 22855 +[15621] Forked 22856 +(22855) found +(22856) found +[15620] Forked 22857 +[15619] Forked 22858 +(22857) found +(22858) found +[15618] Forked 22859 +[15617] Forked 22860 +(22859) found +(22860) found +[15616] Forked 22861 +[15615] Forked 22862 +(22861) found +(22862) found +[15614] Forked 22863 +[15613] Forked 22864 +(22863) found +(22864) found +[15612] Forked 22865 +[15611] Forked 22866 +(22865) found +(22866) found +[15610] Forked 22867 +[15609] Forked 22868 +(22867) found +(22868) found +[15608] Forked 22869 +[15607] Forked 22870 +(22869) found +(22870) found +[15606] Forked 22871 +[15605] Forked 22872 +(22871) found +(22872) found +[15604] Forked 22873 +[15603] Forked 22874 +(22873) found +(22874) found +[15602] Forked 22875 +[15601] Forked 22876 +(22875) found +(22876) found +[15600] Forked 22877 +[15599] Forked 22878 +(22877) found +(22878) found +[15598] Forked 22879 +[15597] Forked 22880 +(22879) found +(22880) found +[15596] Forked 22881 +[15595] Forked 22882 +(22881) found +(22882) found +[15594] Forked 22883 +[15593] Forked 22884 +(22883) found +(22884) found +[15592] Forked 22885 +[15591] Forked 22886 +(22885) found +(22886) found +[15590] Forked 22887 +[15589] Forked 22888 +(22888) found +(22887) found +[15588] Forked 22889 +(22889) found +[15587] Forked 22890 +(22890) found +[15586] Forked 22891 +(22891) found +[15585] Forked 22892 +(22892) found +[15584] Forked 22893 +(22893) found +[15583] Forked 22894 +(22894) found +[15582] Forked 22895 +(22895) found +[15581] Forked 22896 +(22896) found +[15580] Forked 22897 +(22897) found +[15579] Forked 22898 +(22898) found +[15578] Forked 22899 +(22899) found +[15577] Forked 22900 +(22900) found +[15576] Forked 22901 +(22901) found +[15575] Forked 22902 +(22902) found +[15574] Forked 22903 +(22903) found +[15573] Forked 22904 +(22904) found +[15572] Forked 22905 +(22905) found +[15571] Forked 22906 +(22906) found +[15570] Forked 22907 +(22907) found +[15569] Forked 22908 +(22908) found +[15568] Forked 22909 +(22909) found +[15567] Forked 22910 +(22910) found +[15566] Forked 22911 +(22911) found +[15565] Forked 22912 +(22912) found +[15564] Forked 22913 +(22913) found +[15563] Forked 22914 +(22914) found +[15562] Forked 22915 +(22915) found +[15561] Forked 22916 +(22916) found +[15560] Forked 22917 +(22917) found +[15559] Forked 22918 +(22918) found +[15558] Forked 22919 +(22919) found +[15557] Forked 22920 +(22920) found +[15556] Forked 22921 +(22921) found +[15555] Forked 22922 +(22922) found +[15554] Forked 22923 +(22923) found +[15553] Forked 22924 +[15552] Forked 22925 +(22924) found +(22925) found +[15551] Forked 22926 +[15550] Forked 22927 +(22926) found +(22927) found +[15549] Forked 22928 +[15548] Forked 22929 +(22928) found +(22929) found +[15547] Forked 22930 +[15546] Forked 22931 +(22930) found +(22931) found +[15545] Forked 22932 +[15544] Forked 22933 +(22932) found +(22933) found +[15543] Forked 22934 +[15542] Forked 22935 +(22934) found +(22935) found +[15541] Forked 22936 +[15540] Forked 22937 +(22936) found +(22937) found +[15539] Forked 22938 +[15538] Forked 22939 +(22938) found +(22939) found +[15537] Forked 22940 +[15536] Forked 22941 +(22940) found +(22941) found +[15535] Forked 22942 +[15534] Forked 22943 +(22942) found +(22943) found +[15533] Forked 22944 +[15532] Forked 22945 +(22944) found +(22945) found +[15531] Forked 22946 +[15530] Forked 22947 +(22946) found +(22947) found +[15529] Forked 22948 +[15528] Forked 22949 +(22948) found +(22949) found +[15527] Forked 22950 +[15526] Forked 22951 +(22950) found +(22951) found +[15525] Forked 22952 +[15524] Forked 22953 +(22952) found +(22953) found +[15523] Forked 22954 +[15522] Forked 22955 +(22954) found +(22955) found +[15521] Forked 22956 +[15520] Forked 22957 +(22956) found +(22957) found +[15519] Forked 22958 +[15518] Forked 22959 +(22958) found +(22959) found +[15517] Forked 22960 +[15516] Forked 22961 +(22960) found +(22961) found +[15515] Forked 22962 +[15514] Forked 22963 +(22962) found +(22963) found +[15513] Forked 22964 +[15512] Forked 22965 +(22964) found +(22965) found +[15511] Forked 22966 +[15510] Forked 22967 +(22966) found +(22967) found +[15509] Forked 22968 +(22968) found +[15508] Forked 22969 +(22969) found +[15507] Forked 22970 +(22970) found +[15506] Forked 22971 +(22971) found +[15505] Forked 22972 +(22972) found +[15504] Forked 22973 +(22973) found +[15503] Forked 22974 +(22974) found +[15502] Forked 22975 +(22975) found +[15501] Forked 22976 +(22976) found +[15500] Forked 22977 +(22977) found +[15499] Forked 22978 +(22978) found +[15498] Forked 22979 +(22979) found +[15497] Forked 22980 +(22980) found +[15496] Forked 22981 +(22981) found +[15495] Forked 22982 +(22982) found +[15494] Forked 22983 +(22983) found +[15493] Forked 22984 +(22984) found +[15492] Forked 22985 +(22985) found +[15491] Forked 22986 +(22986) found +[15490] Forked 22987 +(22987) found +[15489] Forked 22988 +(22988) found +[15488] Forked 22989 +(22989) found +[15487] Forked 22990 +(22990) found +[15486] Forked 22991 +(22991) found +[15485] Forked 22992 +(22992) found +[15484] Forked 22993 +(22993) found +[15483] Forked 22994 +(22994) found +[15482] Forked 22995 +(22995) found +[15481] Forked 22996 +(22996) found +[15480] Forked 22997 +(22997) found +[15479] Forked 22998 +(22998) found +[15478] Forked 22999 +(22999) found +[15477] Forked 23000 +(23000) found +[15476] Forked 23001 +(23001) found +[15475] Forked 23002 +(23002) found +[15474] Forked 23003 +(23003) found +[15473] Forked 23004 +[15472] Forked 23005 +(23004) found +(23005) found +[15471] Forked 23006 +[15470] Forked 23007 +(23006) found +(23007) found +[15469] Forked 23008 +[15468] Forked 23009 +(23008) found +(23009) found +[15467] Forked 23010 +[15466] Forked 23011 +(23010) found +(23011) found +[15465] Forked 23012 +[15464] Forked 23013 +(23012) found +(23013) found +[15463] Forked 23014 +[15462] Forked 23015 +(23014) found +(23015) found +[15461] Forked 23016 +[15460] Forked 23017 +(23016) found +(23017) found +[15459] Forked 23018 +[15458] Forked 23019 +(23018) found +(23019) found +[15457] Forked 23020 +[15456] Forked 23021 +(23020) found +(23021) found +[15455] Forked 23022 +[15454] Forked 23023 +(23022) found +(23023) found +[15453] Forked 23024 +[15452] Forked 23025 +(23024) found +(23025) found +[15451] Forked 23026 +[15450] Forked 23027 +(23026) found +(23027) found +[15449] Forked 23028 +[15448] Forked 23029 +(23028) found +(23029) found +[15447] Forked 23030 +[15446] Forked 23031 +(23030) found +(23031) found +[15445] Forked 23032 +[15444] Forked 23033 +(23032) found +(23033) found +[15443] Forked 23034 +[15442] Forked 23035 +(23034) found +(23035) found +[15441] Forked 23036 +[15440] Forked 23037 +(23036) found +(23037) found +[15439] Forked 23038 +[15438] Forked 23039 +(23039) found +(23038) found +[15437] Forked 23040 +(23040) found +[15436] Forked 23041 +(23041) found +[15435] Forked 23042 +(23042) found +[15434] Forked 23043 +(23043) found +[15433] Forked 23044 +(23044) found +[15432] Forked 23045 +(23045) found +[15431] Forked 23046 +(23046) found +[15430] Forked 23047 +(23047) found +[15429] Forked 23048 +(23048) found +[15428] Forked 23049 +(23049) found +[15427] Forked 23050 +(23050) found +[15426] Forked 23051 +(23051) found +[15425] Forked 23052 +(23052) found +[15424] Forked 23053 +(23053) found +[15423] Forked 23054 +(23054) found +[15422] Forked 23055 +(23055) found +[15421] Forked 23056 +(23056) found +[15420] Forked 23057 +(23057) found +[15419] Forked 23058 +(23058) found +[15418] Forked 23059 +(23059) found +[15417] Forked 23060 +(23060) found +[15416] Forked 23061 +(23061) found +[15415] Forked 23062 +(23062) found +[15414] Forked 23063 +(23063) found +[15413] Forked 23064 +(23064) found +[15412] Forked 23065 +(23065) found +[15411] Forked 23066 +(23066) found +[15410] Forked 23067 +(23067) found +[15409] Forked 23068 +(23068) found +[15408] Forked 23069 +(23069) found +[15407] Forked 23070 +(23070) found +[15406] Forked 23071 +(23071) found +[15405] Forked 23072 +(23072) found +[15404] Forked 23073 +(23073) found +[15403] Forked 23074 +(23074) found +[15402] Forked 23075 +(23075) found +[15401] Forked 23076 +(23076) found +[15400] Forked 23077 +(23077) found +[15399] Forked 23078 +(23078) found +[15398] Forked 23079 +(23079) found +[15397] Forked 23080 +(23080) found +[15396] Forked 23081 +(23081) found +[15395] Forked 23082 +(23082) found +[15394] Forked 23083 +[15393] Forked 23084 +(23083) found +(23084) found +[15392] Forked 23085 +[15391] Forked 23086 +(23085) found +(23086) found +[15390] Forked 23087 +[15389] Forked 23088 +(23087) found +(23088) found +[15388] Forked 23089 +[15387] Forked 23090 +(23089) found +(23090) found +[15386] Forked 23091 +[15385] Forked 23092 +(23091) found +(23092) found +[15384] Forked 23093 +[15383] Forked 23094 +(23093) found +(23094) found +[15382] Forked 23095 +[15381] Forked 23096 +(23095) found +(23096) found +[15380] Forked 23097 +[15379] Forked 23098 +(23097) found +(23098) found +[15378] Forked 23099 +[15377] Forked 23100 +(23099) found +(23100) found +[15376] Forked 23101 +[15375] Forked 23102 +(23101) found +(23102) found +[15374] Forked 23103 +[15373] Forked 23104 +(23103) found +(23104) found +[15372] Forked 23105 +[15371] Forked 23106 +(23105) found +(23106) found +[15370] Forked 23107 +[15369] Forked 23108 +(23107) found +(23108) found +[15368] Forked 23109 +[15367] Forked 23110 +(23109) found +(23110) found +[15366] Forked 23111 +[15365] Forked 23112 +(23111) found +(23112) found +[15364] Forked 23113 +[15363] Forked 23114 +(23113) found +(23114) found +[15362] Forked 23115 +[15361] Forked 23116 +(23115) found +(23116) found +[15360] Forked 23117 +[15359] Forked 23118 +(23117) found +(23118) found +[15358] Forked 23119 +[15357] Forked 23120 +(23119) found +(23120) found +[15356] Forked 23121 +[15355] Forked 23122 +(23121) found +(23122) found +[15354] Forked 23123 +[15353] Forked 23124 +(23123) found +(23124) found +[15352] Forked 23125 +[15351] Forked 23126 +(23125) found +(23126) found +[15350] Forked 23127 +[15349] Forked 23128 +(23127) found +(23128) found +[15348] Forked 23129 +(23129) found +[15347] Forked 23130 +(23130) found +[15346] Forked 23131 +(23131) found +[15345] Forked 23132 +[15344] Forked 23133 +(23132) found +(23133) found +[15343] Forked 23134 +[15342] Forked 23135 +(23134) found +(23135) found +[15341] Forked 23136 +[15340] Forked 23137 +(23136) found +(23137) found +[15339] Forked 23138 +[15338] Forked 23139 +(23138) found +(23139) found +[15337] Forked 23140 +[15336] Forked 23141 +(23140) found +(23141) found +[15335] Forked 23142 +[15334] Forked 23143 +(23142) found +(23143) found +[15333] Forked 23144 +[15332] Forked 23145 +(23144) found +(23145) found +[15331] Forked 23146 +[15330] Forked 23147 +(23146) found +(23147) found +[15329] Forked 23148 +[15328] Forked 23149 +(23148) found +(23149) found +[15327] Forked 23150 +[15326] Forked 23151 +(23150) found +(23151) found +[15325] Forked 23152 +[15324] Forked 23153 +(23152) found +(23153) found +[15323] Forked 23154 +[15322] Forked 23155 +(23154) found +(23155) found +[15321] Forked 23156 +[15320] Forked 23158 +(23156) found +(23158) found +[15319] Forked 23159 +(23159) found +[15318] Forked 23160 +(23160) found +[15317] Forked 23161 +(23161) found +[15316] Forked 23162 +(23162) found +[15315] Forked 23163 +(23163) found +[15314] Forked 23164 +(23164) found +[15313] Forked 23165 +(23165) found +[15312] Forked 23166 +(23166) found +[15311] Forked 23167 +(23167) found +[15310] Forked 23168 +(23168) found +[15309] Forked 23169 +(23169) found +[15308] Forked 23170 +(23170) found +[15307] Forked 23171 +(23171) found +[15306] Forked 23172 +(23172) found +[15305] Forked 23173 +(23173) found +[15304] Forked 23174 +(23174) found +[15303] Forked 23175 +(23175) found +[15302] Forked 23176 +(23176) found +[15301] Forked 23177 +(23177) found +[15300] Forked 23178 +(23178) found +[15299] Forked 23179 +(23179) found +[15298] Forked 23180 +(23180) found +[15297] Forked 23181 +(23181) found +[15296] Forked 23182 +(23182) found +[15295] Forked 23183 +(23183) found +[15294] Forked 23184 +(23184) found +[15293] Forked 23185 +(23185) found +[15292] Forked 23186 +(23186) found +[15291] Forked 23187 +(23187) found +[15290] Forked 23188 +(23188) found +[15289] Forked 23189 +(23189) found +[15288] Forked 23190 +(23190) found +[15287] Forked 23191 +(23191) found +[15286] Forked 23192 +(23192) found +[15285] Forked 23193 +(23193) found +[15284] Forked 23194 +(23194) found +[15283] Forked 23195 +(23195) found +[15282] Forked 23196 +(23196) found +[15281] Forked 23197 +(23197) found +[15280] Forked 23198 +(23198) found +[15279] Forked 23199 +(23199) found +[15278] Forked 23200 +(23200) found +[15277] Forked 23201 +(23201) found +[15276] Forked 23202 +(23202) found +[15275] Forked 23203 +(23203) found +[15274] Forked 23204 +(23204) found +[15273] Forked 23205 +(23205) found +[15272] Forked 23206 +(23206) found +[15271] Forked 23207 +(23207) found +[15270] Forked 23208 +(23208) found +[15269] Forked 23209 +(23209) found +[15268] Forked 23210 +(23210) found +[15267] Forked 23211 +[15266] Forked 23212 +(23211) found +(23212) found +[15265] Forked 23213 +[15264] Forked 23214 +(23213) found +(23214) found +[15263] Forked 23215 +[15262] Forked 23216 +(23215) found +(23216) found +[15261] Forked 23217 +[15260] Forked 23218 +(23217) found +(23218) found +[15259] Forked 23219 +[15258] Forked 23220 +(23219) found +(23220) found +[15257] Forked 23221 +[15256] Forked 23222 +(23221) found +(23222) found +[15255] Forked 23223 +[15254] Forked 23224 +(23223) found +(23224) found +[15253] Forked 23225 +[15252] Forked 23226 +(23225) found +(23226) found +[15251] Forked 23227 +[15250] Forked 23228 +(23227) found +(23228) found +[15249] Forked 23229 +[15248] Forked 23230 +(23229) found +(23230) found +[15247] Forked 23231 +[15246] Forked 23232 +(23231) found +(23232) found +[15245] Forked 23233 +[15244] Forked 23234 +(23233) found +(23234) found +[15243] Forked 23235 +[15242] Forked 23236 +(23235) found +(23236) found +[15241] Forked 23237 +[15240] Forked 23238 +(23237) found +(23238) found +[15239] Forked 23239 +[15238] Forked 23240 +(23239) found +(23240) found +[15237] Forked 23241 +[15236] Forked 23242 +(23241) found +(23242) found +[15235] Forked 23243 +[15234] Forked 23244 +(23243) found +(23244) found +[15233] Forked 23245 +[15232] Forked 23246 +(23245) found +(23246) found +[15231] Forked 23247 +[15230] Forked 23248 +(23247) found +(23248) found +[15229] Forked 23249 +[15228] Forked 23250 +(23249) found +(23250) found +[15227] Forked 23251 +[15226] Forked 23252 +(23251) found +(23252) found +[15225] Forked 23253 +[15224] Forked 23254 +(23253) found +(23254) found +[15223] Forked 23255 +[15222] Forked 23256 +(23255) found +(23256) found +[15221] Forked 23257 +[15220] Forked 23258 +(23258) found +(23257) found +[15219] Forked 23259 +(23259) found +[15218] Forked 23260 +(23260) found +[15217] Forked 23261 +(23261) found +[15216] Forked 23262 +(23262) found +[15215] Forked 23263 +(23263) found +[15214] Forked 23264 +(23264) found +[15213] Forked 23265 +(23265) found +[15212] Forked 23266 +(23266) found +[15211] Forked 23267 +(23267) found +[15210] Forked 23268 +(23268) found +[15209] Forked 23269 +(23269) found +[15208] Forked 23270 +(23270) found +[15207] Forked 23271 +(23271) found +[15206] Forked 23272 +(23272) found +[15205] Forked 23273 +(23273) found +[15204] Forked 23274 +(23274) found +[15203] Forked 23275 +(23275) found +[15202] Forked 23276 +(23276) found +[15201] Forked 23277 +(23277) found +[15200] Forked 23278 +(23278) found +[15199] Forked 23279 +(23279) found +[15198] Forked 23280 +(23280) found +[15197] Forked 23281 +(23281) found +[15196] Forked 23282 +(23282) found +[15195] Forked 23283 +(23283) found +[15194] Forked 23284 +(23284) found +[15193] Forked 23285 +(23285) found +[15192] Forked 23286 +(23286) found +[15191] Forked 23287 +(23287) found +[15190] Forked 23288 +(23288) found +[15189] Forked 23289 +(23289) found +[15188] Forked 23290 +(23290) found +[15187] Forked 23291 +(23291) found +[15186] Forked 23292 +(23292) found +[15185] Forked 23293 +(23293) found +[15184] Forked 23294 +(23294) found +[15183] Forked 23295 +(23295) found +[15182] Forked 23296 +(23296) found +[15181] Forked 23297 +(23297) found +[15180] Forked 23298 +(23298) found +[15179] Forked 23299 +(23299) found +[15178] Forked 23300 +(23300) found +[15177] Forked 23301 +(23301) found +[15176] Forked 23302 +(23302) found +[15175] Forked 23303 +(23303) found +[15174] Forked 23304 +(23304) found +[15173] Forked 23305 +(23305) found +[15172] Forked 23306 +(23306) found +[15171] Forked 23307 +(23307) found +[15170] Forked 23308 +(23308) found +[15169] Forked 23309 +(23309) found +[15168] Forked 23310 +(23310) found +[15167] Forked 23311 +(23311) found +[15166] Forked 23312 +(23312) found +[15165] Forked 23313 +(23313) found +[15164] Forked 23314 +(23314) found +[15163] Forked 23315 +(23315) found +[15162] Forked 23316 +(23316) found +[15161] Forked 23317 +(23317) found +[15160] Forked 23318 +(23318) found +[15159] Forked 23319 +(23319) found +[15158] Forked 23320 +(23320) found +[15157] Forked 23321 +(23321) found +[15156] Forked 23322 +(23322) found +[15155] Forked 23323 +(23323) found +[15154] Forked 23324 +(23324) found +[15153] Forked 23325 +(23325) found +[15152] Forked 23326 +(23326) found +[15151] Forked 23327 +(23327) found +[15150] Forked 23328 +(23328) found +[15149] Forked 23329 +(23329) found +[15148] Forked 23330 +[15147] Forked 23331 +(23330) found +(23331) found +[15146] Forked 23332 +[15145] Forked 23333 +(23332) found +(23333) found +[15144] Forked 23334 +[15143] Forked 23335 +(23334) found +(23335) found +[15142] Forked 23336 +[15141] Forked 23337 +(23336) found +(23337) found +[15140] Forked 23338 +[15139] Forked 23339 +(23338) found +(23339) found +[15138] Forked 23340 +[15137] Forked 23341 +(23340) found +(23341) found +[15136] Forked 23342 +[15135] Forked 23343 +(23342) found +(23343) found +[15134] Forked 23344 +[15133] Forked 23345 +(23344) found +(23345) found +[15132] Forked 23346 +[15131] Forked 23347 +(23346) found +(23347) found +[15130] Forked 23348 +[15129] Forked 23349 +(23348) found +(23349) found +[15128] Forked 23350 +[15127] Forked 23351 +(23350) found +(23351) found +[15126] Forked 23352 +[15125] Forked 23353 +(23352) found +(23353) found +[15124] Forked 23354 +[15123] Forked 23355 +(23354) found +(23355) found +[15122] Forked 23356 +[15121] Forked 23357 +(23356) found +(23357) found +[15120] Forked 23358 +[15119] Forked 23359 +(23358) found +(23359) found +[15118] Forked 23360 +[15117] Forked 23361 +(23360) found +(23361) found +[15116] Forked 23362 +[15115] Forked 23363 +(23362) found +(23363) found +[15114] Forked 23364 +[15113] Forked 23365 +(23364) found +(23365) found +[15112] Forked 23366 +[15111] Forked 23367 +(23366) found +(23367) found +[15110] Forked 23368 +[15109] Forked 23369 +(23368) found +(23369) found +[15108] Forked 23370 +[15107] Forked 23371 +(23370) found +(23371) found +[15106] Forked 23372 +[15105] Forked 23373 +(23372) found +(23373) found +[15104] Forked 23374 +[15103] Forked 23375 +(23374) found +(23375) found +[15102] Forked 23376 +(23376) found +[15101] Forked 23377 +(23377) found +[15100] Forked 23378 +(23378) found +[15099] Forked 23379 +(23379) found +[15098] Forked 23380 +(23380) found +[15097] Forked 23381 +(23381) found +[15096] Forked 23382 +(23382) found +[15095] Forked 23383 +(23383) found +[15094] Forked 23384 +(23384) found +[15093] Forked 23385 +(23385) found +[15092] Forked 23386 +(23386) found +[15091] Forked 23387 +(23387) found +[15090] Forked 23388 +(23388) found +[15089] Forked 23389 +(23389) found +[15088] Forked 23390 +(23390) found +[15087] Forked 23391 +(23391) found +[15086] Forked 23392 +(23392) found +[15085] Forked 23393 +(23393) found +[15084] Forked 23394 +(23394) found +[15083] Forked 23395 +(23395) found +[15082] Forked 23396 +(23396) found +[15081] Forked 23397 +(23397) found +[15080] Forked 23398 +(23398) found +[15079] Forked 23399 +(23399) found +[15078] Forked 23400 +(23400) found +[15077] Forked 23401 +(23401) found +[15076] Forked 23402 +(23402) found +[15075] Forked 23403 +(23403) found +[15074] Forked 23404 +(23404) found +[15073] Forked 23405 +(23405) found +[15072] Forked 23406 +(23406) found +[15071] Forked 23407 +(23407) found +[15070] Forked 23408 +(23408) found +[15069] Forked 23409 +(23409) found +[15068] Forked 23410 +(23410) found +[15067] Forked 23411 +(23411) found +[15066] Forked 23412 +(23412) found +[15065] Forked 23413 +[15064] Forked 23414 +(23413) found +(23414) found +[15063] Forked 23415 +[15062] Forked 23416 +(23415) found +(23416) found +[15061] Forked 23417 +[15060] Forked 23418 +(23417) found +(23418) found +[15059] Forked 23419 +[15058] Forked 23420 +(23419) found +(23420) found +[15057] Forked 23421 +[15056] Forked 23422 +(23421) found +(23422) found +[15055] Forked 23423 +[15054] Forked 23424 +(23423) found +(23424) found +[15053] Forked 23425 +[15052] Forked 23426 +(23425) found +(23426) found +[15051] Forked 23427 +[15050] Forked 23428 +(23427) found +(23428) found +[15049] Forked 23429 +[15048] Forked 23430 +(23429) found +(23430) found +[15047] Forked 23431 +[15046] Forked 23432 +(23431) found +(23432) found +[15045] Forked 23433 +[15044] Forked 23434 +(23433) found +(23434) found +[15043] Forked 23435 +[15042] Forked 23436 +(23435) found +(23436) found +[15041] Forked 23437 +[15040] Forked 23438 +(23437) found +(23438) found +[15039] Forked 23439 +[15038] Forked 23440 +(23439) found +(23440) found +[15037] Forked 23441 +[15036] Forked 23442 +(23441) found +(23442) found +[15035] Forked 23443 +[15034] Forked 23444 +(23443) found +(23444) found +[15033] Forked 23445 +[15032] Forked 23446 +(23445) found +(23446) found +[15031] Forked 23447 +[15030] Forked 23448 +(23447) found +(23448) found +[15029] Forked 23449 +[15028] Forked 23450 +(23449) found +(23450) found +[15027] Forked 23451 +[15026] Forked 23452 +(23451) found +(23452) found +[15025] Forked 23453 +[15024] Forked 23454 +(23453) found +(23454) found +[15023] Forked 23455 +[15022] Forked 23456 +(23455) found +(23456) found +[15021] Forked 23457 +[15020] Forked 23458 +(23457) found +(23458) found +[15019] Forked 23459 +[15018] Forked 23460 +(23459) found +(23460) found +[15017] Forked 23461 +[15016] Forked 23462 +(23461) found +(23462) found +[15015] Forked 23463 +[15014] Forked 23464 +(23463) found +(23464) found +[15013] Forked 23465 +[15012] Forked 23466 +(23465) found +(23466) found +[15011] Forked 23467 +[15010] Forked 23468 +(23467) found +(23468) found +[15009] Forked 23469 +[15008] Forked 23470 +(23469) found +(23470) found +[15007] Forked 23471 +[15006] Forked 23472 +(23471) found +(23472) found +[15005] Forked 23473 +[15004] Forked 23474 +(23473) found +(23474) found +[15003] Forked 23475 +[15002] Forked 23476 +(23475) found +(23476) found +[15001] Forked 23477 +[15000] Forked 23478 +(23477) found +(23478) found +[14999] Forked 23479 +[14998] Forked 23480 +(23479) found +(23480) found +[14997] Forked 23481 +[14996] Forked 23482 +(23481) found +(23482) found +[14995] Forked 23483 +[14994] Forked 23484 +(23483) found +(23484) found +[14993] Forked 23485 +[14992] Forked 23486 +(23485) found +(23486) found +[14991] Forked 23487 +[14990] Forked 23488 +(23487) found +(23488) found +[14989] Forked 23489 +[14988] Forked 23490 +(23489) found +(23490) found +[14987] Forked 23491 +[14986] Forked 23492 +(23491) found +(23492) found +[14985] Forked 23493 +[14984] Forked 23494 +(23493) found +(23494) found +[14983] Forked 23495 +[14982] Forked 23496 +(23495) found +(23496) found +[14981] Forked 23497 +[14980] Forked 23498 +(23497) found +(23498) found +[14979] Forked 23499 +[14978] Forked 23500 +(23499) found +(23500) found +[14977] Forked 23501 +[14976] Forked 23502 +(23501) found +(23502) found +[14975] Forked 23503 +[14974] Forked 23504 +(23503) found +(23504) found +[14973] Forked 23505 +[14972] Forked 23506 +(23505) found +(23506) found +[14971] Forked 23507 +[14970] Forked 23508 +(23507) found +(23508) found +[14969] Forked 23509 +[14968] Forked 23510 +(23509) found +(23510) found +[14967] Forked 23511 +[14966] Forked 23512 +(23511) found +(23512) found +[14965] Forked 23513 +[14964] Forked 23514 +(23513) found +(23514) found +[14963] Forked 23515 +[14962] Forked 23516 +(23515) found +(23516) found +[14961] Forked 23517 +[14960] Forked 23518 +(23517) found +(23518) found +[14959] Forked 23519 +[14958] Forked 23520 +(23519) found +(23520) found +[14957] Forked 23521 +[14956] Forked 23522 +(23521) found +(23522) found +[14955] Forked 23523 +[14954] Forked 23524 +(23523) found +(23524) found +[14953] Forked 23525 +[14952] Forked 23526 +(23525) found +(23526) found +[14951] Forked 23527 +[14950] Forked 23528 +(23527) found +(23528) found +[14949] Forked 23529 +[14948] Forked 23530 +(23529) found +(23530) found +[14947] Forked 23531 +[14946] Forked 23532 +(23531) found +(23532) found +[14945] Forked 23533 +[14944] Forked 23534 +(23533) found +(23534) found +[14943] Forked 23535 +[14942] Forked 23536 +(23535) found +(23536) found +[14941] Forked 23537 +[14940] Forked 23538 +(23537) found +(23538) found +[14939] Forked 23539 +[14938] Forked 23540 +(23539) found +(23540) found +[14937] Forked 23541 +[14936] Forked 23542 +(23541) found +(23542) found +[14935] Forked 23543 +[14934] Forked 23544 +(23543) found +(23544) found +[14933] Forked 23545 +[14932] Forked 23546 +(23545) found +(23546) found +[14931] Forked 23547 +[14930] Forked 23548 +(23547) found +(23548) found +[14929] Forked 23549 +[14928] Forked 23550 +(23549) found +(23550) found +[14927] Forked 23551 +[14926] Forked 23552 +(23551) found +(23552) found +[14925] Forked 23553 +[14924] Forked 23554 +(23553) found +(23554) found +[14923] Forked 23555 +[14922] Forked 23556 +(23555) found +(23556) found +[14921] Forked 23557 +[14920] Forked 23558 +(23557) found +(23558) found +[14919] Forked 23559 +[14918] Forked 23560 +(23559) found +(23560) found +[14917] Forked 23561 +[14916] Forked 23562 +(23561) found +(23562) found +[14915] Forked 23563 +[14914] Forked 23564 +(23563) found +(23564) found +[14913] Forked 23565 +[14912] Forked 23566 +(23565) found +(23566) found +[14911] Forked 23567 +[14910] Forked 23568 +(23567) found +(23568) found +[14909] Forked 23569 +[14908] Forked 23570 +(23569) found +(23570) found +[14907] Forked 23571 +[14906] Forked 23572 +(23571) found +(23572) found +[14905] Forked 23573 +[14904] Forked 23574 +(23573) found +(23574) found +[14903] Forked 23575 +[14902] Forked 23577 +(23575) found +(23577) found +[14901] Forked 23578 +(23578) found +[14900] Forked 23579 +(23579) found +[14899] Forked 23580 +(23580) found +[14898] Forked 23581 +(23581) found +[14897] Forked 23582 +(23582) found +[14896] Forked 23583 +(23583) found +[14895] Forked 23584 +(23584) found +[14894] Forked 23585 +(23585) found +[14893] Forked 23586 +(23586) found +[14892] Forked 23587 +(23587) found +[14891] Forked 23588 +(23588) found +[14890] Forked 23589 +(23589) found +[14889] Forked 23590 +(23590) found +[14888] Forked 23591 +(23591) found +[14887] Forked 23592 +(23592) found +[14886] Forked 23593 +(23593) found +[14885] Forked 23594 +(23594) found +[14884] Forked 23595 +(23595) found +[14883] Forked 23596 +(23596) found +[14882] Forked 23597 +(23597) found +[14881] Forked 23598 +(23598) found +[14880] Forked 23599 +(23599) found +[14879] Forked 23600 +(23600) found +[14878] Forked 23601 +(23601) found +[14877] Forked 23602 +(23602) found +[14876] Forked 23603 +(23603) found +[14875] Forked 23604 +(23604) found +[14874] Forked 23605 +(23605) found +[14873] Forked 23606 +(23606) found +[14872] Forked 23607 +(23607) found +[14871] Forked 23608 +(23608) found +[14870] Forked 23609 +(23609) found +[14869] Forked 23610 +(23610) found +[14868] Forked 23611 +(23611) found +[14867] Forked 23612 +(23612) found +[14866] Forked 23613 +(23613) found +[14865] Forked 23614 +(23614) found +[14864] Forked 23615 +(23615) found +[14863] Forked 23616 +(23616) found +[14862] Forked 23617 +(23617) found +[14861] Forked 23618 +(23618) found +[14860] Forked 23619 +(23619) found +[14859] Forked 23620 +(23620) found +[14858] Forked 23621 +(23621) found +[14857] Forked 23622 +(23622) found +[14856] Forked 23623 +(23623) found +[14855] Forked 23624 +(23624) found +[14854] Forked 23625 +(23625) found +[14853] Forked 23626 +(23626) found +[14852] Forked 23627 +[14851] Forked 23628 +(23627) found +(23628) found +[14850] Forked 23629 +[14849] Forked 23630 +(23629) found +(23630) found +[14848] Forked 23631 +[14847] Forked 23632 +(23631) found +(23632) found +[14846] Forked 23633 +[14845] Forked 23634 +(23633) found +(23634) found +[14844] Forked 23635 +[14843] Forked 23636 +(23635) found +(23636) found +[14842] Forked 23637 +[14841] Forked 23638 +(23637) found +(23638) found +[14840] Forked 23639 +[14839] Forked 23640 +(23639) found +(23640) found +[14838] Forked 23641 +[14837] Forked 23642 +(23641) found +(23642) found +[14836] Forked 23643 +[14835] Forked 23644 +(23643) found +(23644) found +[14834] Forked 23645 +[14833] Forked 23646 +(23645) found +(23646) found +[14832] Forked 23647 +[14831] Forked 23648 +(23647) found +(23648) found +[14830] Forked 23649 +[14829] Forked 23650 +(23649) found +(23650) found +[14828] Forked 23651 +[14827] Forked 23652 +(23651) found +(23652) found +[14826] Forked 23653 +[14825] Forked 23654 +(23653) found +(23654) found +[14824] Forked 23655 +[14823] Forked 23656 +(23655) found +(23656) found +[14822] Forked 23657 +[14821] Forked 23658 +(23657) found +(23658) found +[14820] Forked 23659 +[14819] Forked 23660 +(23659) found +(23660) found +[14818] Forked 23661 +[14817] Forked 23662 +(23661) found +(23662) found +[14816] Forked 23663 +[14815] Forked 23664 +(23663) found +(23664) found +[14814] Forked 23665 +[14813] Forked 23666 +(23665) found +(23666) found +[14812] Forked 23667 +[14811] Forked 23668 +(23667) found +(23668) found +[14810] Forked 23669 +[14809] Forked 23670 +(23669) found +(23670) found +[14808] Forked 23671 +[14807] Forked 23672 +(23671) found +(23672) found +[14806] Forked 23673 +[14805] Forked 23674 +(23673) found +(23674) found +[14804] Forked 23675 +[14803] Forked 23676 +(23675) found +(23676) found +[14802] Forked 23677 +[14801] Forked 23678 +(23677) found +(23678) found +[14800] Forked 23679 +[14799] Forked 23680 +(23679) found +(23680) found +[14798] Forked 23681 +[14797] Forked 23682 +(23681) found +(23682) found +[14796] Forked 23683 +[14795] Forked 23684 +(23683) found +(23684) found +[14794] Forked 23685 +[14793] Forked 23686 +(23685) found +(23686) found +[14792] Forked 23687 +[14791] Forked 23688 +(23687) found +(23688) found +[14790] Forked 23689 +[14789] Forked 23690 +(23689) found +(23690) found +[14788] Forked 23691 +[14787] Forked 23692 +(23691) found +(23692) found +[14786] Forked 23693 +[14785] Forked 23694 +(23693) found +(23694) found +[14784] Forked 23695 +[14783] Forked 23696 +(23695) found +(23696) found +[14782] Forked 23697 +[14781] Forked 23698 +(23697) found +(23698) found +[14780] Forked 23699 +[14779] Forked 23700 +(23699) found +(23700) found +[14778] Forked 23701 +[14777] Forked 23702 +(23701) found +(23702) found +[14776] Forked 23703 +[14775] Forked 23704 +(23703) found +(23704) found +[14774] Forked 23705 +[14773] Forked 23706 +(23705) found +(23706) found +[14772] Forked 23707 +[14771] Forked 23708 +(23707) found +(23708) found +[14770] Forked 23709 +[14769] Forked 23710 +(23709) found +(23710) found +[14768] Forked 23711 +[14767] Forked 23712 +(23711) found +(23712) found +[14766] Forked 23713 +[14765] Forked 23714 +(23713) found +(23714) found +[14764] Forked 23715 +[14763] Forked 23716 +(23715) found +(23716) found +[14762] Forked 23717 +[14761] Forked 23718 +(23717) found +(23718) found +[14760] Forked 23719 +(23719) found +[14759] Forked 23720 +(23720) found +[14758] Forked 23721 +(23721) found +[14757] Forked 23722 +(23722) found +[14756] Forked 23723 +(23723) found +[14755] Forked 23724 +(23724) found +[14754] Forked 23725 +(23725) found +[14753] Forked 23726 +(23726) found +[14752] Forked 23727 +(23727) found +[14751] Forked 23728 +(23728) found +[14750] Forked 23729 +(23729) found +[14749] Forked 23730 +(23730) found +[14748] Forked 23731 +(23731) found +[14747] Forked 23732 +(23732) found +[14746] Forked 23733 +(23733) found +[14745] Forked 23734 +(23734) found +[14744] Forked 23735 +(23735) found +[14743] Forked 23736 +(23736) found +[14742] Forked 23737 +(23737) found +[14741] Forked 23738 +(23738) found +[14740] Forked 23739 +(23739) found +[14739] Forked 23740 +(23740) found +[14738] Forked 23741 +(23741) found +[14737] Forked 23742 +(23742) found +[14736] Forked 23743 +(23743) found +[14735] Forked 23744 +(23744) found +[14734] Forked 23745 +(23745) found +[14733] Forked 23746 +(23746) found +[14732] Forked 23747 +(23747) found +[14731] Forked 23748 +(23748) found +[14730] Forked 23749 +(23749) found +[14729] Forked 23750 +(23750) found +[14728] Forked 23751 +(23751) found +[14727] Forked 23752 +[14726] Forked 23753 +(23752) found +(23753) found +[14725] Forked 23754 +[14724] Forked 23755 +(23754) found +(23755) found +[14723] Forked 23756 +[14722] Forked 23757 +(23756) found +(23757) found +[14721] Forked 23758 +[14720] Forked 23759 +(23758) found +(23759) found +[14719] Forked 23760 +[14718] Forked 23761 +(23760) found +(23761) found +[14717] Forked 23762 +[14716] Forked 23763 +(23762) found +(23763) found +[14715] Forked 23764 +[14714] Forked 23765 +(23764) found +(23765) found +[14713] Forked 23766 +[14712] Forked 23767 +(23766) found +(23767) found +[14711] Forked 23768 +[14710] Forked 23769 +(23768) found +(23769) found +[14709] Forked 23770 +[14708] Forked 23771 +(23770) found +(23771) found +[14707] Forked 23772 +[14706] Forked 23773 +(23772) found +(23773) found +[14705] Forked 23774 +[14704] Forked 23775 +(23774) found +(23775) found +[14703] Forked 23776 +[14702] Forked 23777 +(23776) found +(23777) found +[14701] Forked 23778 +[14700] Forked 23779 +(23778) found +(23779) found +[14699] Forked 23780 +[14698] Forked 23781 +(23780) found +(23781) found +[14697] Forked 23782 +[14696] Forked 23783 +(23782) found +(23783) found +[14695] Forked 23784 +[14694] Forked 23785 +(23784) found +(23785) found +[14693] Forked 23786 +[14692] Forked 23787 +(23786) found +(23787) found +[14691] Forked 23788 +[14690] Forked 23789 +(23788) found +(23789) found +[14689] Forked 23790 +[14688] Forked 23791 +(23790) found +(23791) found +[14687] Forked 23792 +[14686] Forked 23793 +(23792) found +(23793) found +[14685] Forked 23794 +[14684] Forked 23795 +(23794) found +(23795) found +[14683] Forked 23796 +[14682] Forked 23797 +(23796) found +(23797) found +[14681] Forked 23798 +[14680] Forked 23799 +(23798) found +(23799) found +[14679] Forked 23800 +[14678] Forked 23801 +(23800) found +(23801) found +[14677] Forked 23802 +[14676] Forked 23803 +(23802) found +(23803) found +[14675] Forked 23804 +[14674] Forked 23805 +(23804) found +(23805) found +[14673] Forked 23806 +[14672] Forked 23807 +(23806) found +(23807) found +[14671] Forked 23808 +[14670] Forked 23809 +(23808) found +(23809) found +[14669] Forked 23810 +[14668] Forked 23811 +(23810) found +(23811) found +[14667] Forked 23812 +[14666] Forked 23813 +(23812) found +(23813) found +[14665] Forked 23814 +[14664] Forked 23815 +(23814) found +(23815) found +[14663] Forked 23816 +[14662] Forked 23817 +(23816) found +(23817) found +[14661] Forked 23818 +[14660] Forked 23819 +(23818) found +(23819) found +[14659] Forked 23820 +[14658] Forked 23821 +(23820) found +(23821) found +[14657] Forked 23822 +[14656] Forked 23823 +(23822) found +(23823) found +[14655] Forked 23824 +[14654] Forked 23825 +(23824) found +(23825) found +[14653] Forked 23826 +[14652] Forked 23827 +(23826) found +(23827) found +[14651] Forked 23828 +[14650] Forked 23829 +(23828) found +(23829) found +[14649] Forked 23830 +[14648] Forked 23831 +(23830) found +(23831) found +[14647] Forked 23832 +[14646] Forked 23833 +(23832) found +(23833) found +[14645] Forked 23834 +[14644] Forked 23835 +(23834) found +(23835) found +[14643] Forked 23836 +[14642] Forked 23837 +(23836) found +(23837) found +[14641] Forked 23838 +[14640] Forked 23839 +(23838) found +(23839) found +[14639] Forked 23840 +[14638] Forked 23841 +(23840) found +(23841) found +[14637] Forked 23842 +[14636] Forked 23843 +(23842) found +(23843) found +[14635] Forked 23844 +(23844) found +[14634] Forked 23845 +(23845) found +[14633] Forked 23846 +(23846) found +[14632] Forked 23847 +(23847) found +[14631] Forked 23848 +(23848) found +[14630] Forked 23849 +(23849) found +[14629] Forked 23850 +(23850) found +[14628] Forked 23851 +(23851) found +[14627] Forked 23852 +(23852) found +[14626] Forked 23853 +(23853) found +[14625] Forked 23854 +(23854) found +[14624] Forked 23855 +(23855) found +[14623] Forked 23856 +(23856) found +[14622] Forked 23857 +(23857) found +[14621] Forked 23858 +(23858) found +[14620] Forked 23859 +(23859) found +[14619] Forked 23860 +(23860) found +[14618] Forked 23861 +(23861) found +[14617] Forked 23862 +(23862) found +[14616] Forked 23863 +(23863) found +[14615] Forked 23864 +(23864) found +[14614] Forked 23865 +(23865) found +[14613] Forked 23866 +(23866) found +[14612] Forked 23867 +(23867) found +[14611] Forked 23868 +(23868) found +[14610] Forked 23869 +(23869) found +[14609] Forked 23870 +(23870) found +[14608] Forked 23871 +(23871) found +[14607] Forked 23872 +(23872) found +[14606] Forked 23873 +(23873) found +[14605] Forked 23874 +(23874) found +[14604] Forked 23875 +(23875) found +[14603] Forked 23876 +(23876) found +[14602] Forked 23877 +(23877) found +[14601] Forked 23878 +(23878) found +[14600] Forked 23879 +[14599] Forked 23880 +(23879) found +(23880) found +[14598] Forked 23881 +[14597] Forked 23882 +(23881) found +(23882) found +[14596] Forked 23883 +[14595] Forked 23884 +(23883) found +(23884) found +[14594] Forked 23885 +[14593] Forked 23886 +(23885) found +(23886) found +[14592] Forked 23887 +[14591] Forked 23888 +(23887) found +(23888) found +[14590] Forked 23889 +[14589] Forked 23890 +(23889) found +(23890) found +[14588] Forked 23891 +[14587] Forked 23892 +(23891) found +(23892) found +[14586] Forked 23893 +[14585] Forked 23894 +(23893) found +(23894) found +[14584] Forked 23895 +[14583] Forked 23896 +(23895) found +(23896) found +[14582] Forked 23897 +[14581] Forked 23898 +(23897) found +(23898) found +[14580] Forked 23899 +[14579] Forked 23900 +(23899) found +(23900) found +[14578] Forked 23901 +[14577] Forked 23902 +(23901) found +(23902) found +[14576] Forked 23903 +[14575] Forked 23904 +(23903) found +(23904) found +[14574] Forked 23905 +[14573] Forked 23906 +(23905) found +(23906) found +[14572] Forked 23907 +[14571] Forked 23908 +(23907) found +(23908) found +[14570] Forked 23909 +[14569] Forked 23910 +(23909) found +(23910) found +[14568] Forked 23911 +[14567] Forked 23912 +(23911) found +(23912) found +[14566] Forked 23913 +(23913) found +[14565] Forked 23914 +(23914) found +[14564] Forked 23915 +(23915) found +[14563] Forked 23916 +(23916) found +[14562] Forked 23917 +(23917) found +[14561] Forked 23918 +(23918) found +[14560] Forked 23919 +(23919) found +[14559] Forked 23920 +(23920) found +[14558] Forked 23921 +(23921) found +[14557] Forked 23922 +(23922) found +[14556] Forked 23923 +(23923) found +[14555] Forked 23924 +(23924) found +[14554] Forked 23925 +(23925) found +[14553] Forked 23926 +(23926) found +[14552] Forked 23927 +(23927) found +[14551] Forked 23928 +(23928) found +[14550] Forked 23929 +(23929) found +[14549] Forked 23930 +(23930) found +[14548] Forked 23931 +(23931) found +[14547] Forked 23932 +(23932) found +[14546] Forked 23933 +(23933) found +[14545] Forked 23934 +(23934) found +[14544] Forked 23935 +(23935) found +[14543] Forked 23936 +(23936) found +[14542] Forked 23937 +(23937) found +[14541] Forked 23938 +(23938) found +[14540] Forked 23939 +(23939) found +[14539] Forked 23940 +(23940) found +[14538] Forked 23941 +(23941) found +[14537] Forked 23942 +(23942) found +[14536] Forked 23943 +(23943) found +[14535] Forked 23944 +(23944) found +[14534] Forked 23945 +(23945) found +[14533] Forked 23946 +(23946) found +[14532] Forked 23947 +(23947) found +[14531] Forked 23948 +(23948) found +[14530] Forked 23949 +(23949) found +[14529] Forked 23950 +(23950) found +[14528] Forked 23951 +(23951) found +[14527] Forked 23952 +(23952) found +[14526] Forked 23953 +(23953) found +[14525] Forked 23954 +(23954) found +[14524] Forked 23955 +(23955) found +[14523] Forked 23956 +(23956) found +[14522] Forked 23957 +(23957) found +[14521] Forked 23958 +(23958) found +[14520] Forked 23959 +(23959) found +[14519] Forked 23960 +(23960) found +[14518] Forked 23961 +(23961) found +[14517] Forked 23962 +(23962) found +[14516] Forked 23963 +(23963) found +[14515] Forked 23964 +(23964) found +[14514] Forked 23965 +(23965) found +[14513] Forked 23966 +(23966) found +[14512] Forked 23967 +(23967) found +[14511] Forked 23968 +(23968) found +[14510] Forked 23969 +(23969) found +[14509] Forked 23970 +(23970) found +[14508] Forked 23971 +(23971) found +[14507] Forked 23972 +(23972) found +[14506] Forked 23973 +(23973) found +[14505] Forked 23974 +(23974) found +[14504] Forked 23975 +(23975) found +[14503] Forked 23976 +(23976) found +[14502] Forked 23977 +(23977) found +[14501] Forked 23978 +(23978) found +[14500] Forked 23979 +(23979) found +[14499] Forked 23980 +(23980) found +[14498] Forked 23981 +(23981) found +[14497] Forked 23982 +(23982) found +[14496] Forked 23983 +[14495] Forked 23984 +(23983) found +(23984) found +[14494] Forked 23985 +[14493] Forked 23986 +(23985) found +(23986) found +[14492] Forked 23987 +[14491] Forked 23988 +(23987) found +(23988) found +[14490] Forked 23989 +[14489] Forked 23990 +(23989) found +(23990) found +[14488] Forked 23991 +[14487] Forked 23992 +(23991) found +(23992) found +[14486] Forked 23993 +[14485] Forked 23994 +(23993) found +(23994) found +[14484] Forked 23995 +[14483] Forked 23996 +(23995) found +(23996) found +[14482] Forked 23997 +[14481] Forked 23998 +(23997) found +(23998) found +[14480] Forked 23999 +[14479] Forked 24000 +(23999) found +(24000) found +[14478] Forked 24001 +[14477] Forked 24002 +(24001) found +(24002) found +[14476] Forked 24003 +[14475] Forked 24004 +(24003) found +(24004) found +[14474] Forked 24005 +[14473] Forked 24006 +(24005) found +(24006) found +[14472] Forked 24007 +[14471] Forked 24008 +(24007) found +(24008) found +[14470] Forked 24009 +[14469] Forked 24010 +(24009) found +(24010) found +[14468] Forked 24011 +[14467] Forked 24012 +(24011) found +(24012) found +[14466] Forked 24013 +[14465] Forked 24014 +(24013) found +(24014) found +[14464] Forked 24015 +[14463] Forked 24016 +(24015) found +(24016) found +[14462] Forked 24017 +[14461] Forked 24018 +(24017) found +(24018) found +[14460] Forked 24019 +[14459] Forked 24020 +(24019) found +(24020) found +[14458] Forked 24021 +[14457] Forked 24022 +(24021) found +(24022) found +[14456] Forked 24023 +[14455] Forked 24025 +(24023) found +(24025) found +[14454] Forked 24026 +(24026) found +[14453] Forked 24027 +(24027) found +[14452] Forked 24028 +(24028) found +[14451] Forked 24029 +(24029) found +[14450] Forked 24030 +(24030) found +[14449] Forked 24031 +(24031) found +[14448] Forked 24032 +(24032) found +[14447] Forked 24033 +(24033) found +[14446] Forked 24034 +(24034) found +[14445] Forked 24035 +(24035) found +[14444] Forked 24036 +(24036) found +[14443] Forked 24037 +(24037) found +[14442] Forked 24038 +(24038) found +[14441] Forked 24039 +(24039) found +[14440] Forked 24040 +(24040) found +[14439] Forked 24041 +(24041) found +[14438] Forked 24042 +(24042) found +[14437] Forked 24043 +(24043) found +[14436] Forked 24044 +(24044) found +[14435] Forked 24045 +(24045) found +[14434] Forked 24046 +(24046) found +[14433] Forked 24047 +(24047) found +[14432] Forked 24048 +(24048) found +[14431] Forked 24049 +(24049) found +[14430] Forked 24050 +(24050) found +[14429] Forked 24051 +(24051) found +[14428] Forked 24052 +(24052) found +[14427] Forked 24053 +(24053) found +[14426] Forked 24054 +(24054) found +[14425] Forked 24055 +(24055) found +[14424] Forked 24056 +(24056) found +[14423] Forked 24057 +(24057) found +[14422] Forked 24058 +(24058) found +[14421] Forked 24059 +(24059) found +[14420] Forked 24060 +(24060) found +[14419] Forked 24061 +(24061) found +[14418] Forked 24062 +(24062) found +[14417] Forked 24063 +(24063) found +[14416] Forked 24064 +(24064) found +[14415] Forked 24065 +(24065) found +[14414] Forked 24066 +(24066) found +[14413] Forked 24067 +(24067) found +[14412] Forked 24068 +(24068) found +[14411] Forked 24069 +(24069) found +[14410] Forked 24070 +(24070) found +[14409] Forked 24071 +(24071) found +[14408] Forked 24072 +(24072) found +[14407] Forked 24073 +(24073) found +[14406] Forked 24074 +(24074) found +[14405] Forked 24075 +(24075) found +[14404] Forked 24076 +(24076) found +[14403] Forked 24077 +(24077) found +[14402] Forked 24078 +(24078) found +[14401] Forked 24079 +(24079) found +[14400] Forked 24080 +(24080) found +[14399] Forked 24081 +(24081) found +[14398] Forked 24082 +(24082) found +[14397] Forked 24083 +(24083) found +[14396] Forked 24084 +(24084) found +[14395] Forked 24085 +(24085) found +[14394] Forked 24086 +(24086) found +[14393] Forked 24087 +(24087) found +[14392] Forked 24088 +(24088) found +[14391] Forked 24089 +(24089) found +[14390] Forked 24090 +(24090) found +[14389] Forked 24091 +(24091) found +[14388] Forked 24092 +(24092) found +[14387] Forked 24093 +(24093) found +[14386] Forked 24094 +(24094) found +[14385] Forked 24095 +(24095) found +[14384] Forked 24096 +(24096) found +[14383] Forked 24097 +(24097) found +[14382] Forked 24098 +(24098) found +[14381] Forked 24099 +(24099) found +[14380] Forked 24100 +(24100) found +[14379] Forked 24101 +(24101) found +[14378] Forked 24102 +(24102) found +[14377] Forked 24103 +(24103) found +[14376] Forked 24104 +(24104) found +[14375] Forked 24105 +(24105) found +[14374] Forked 24106 +(24106) found +[14373] Forked 24107 +(24107) found +[14372] Forked 24108 +(24108) found +[14371] Forked 24109 +(24109) found +[14370] Forked 24110 +(24110) found +[14369] Forked 24111 +(24111) found +[14368] Forked 24112 +(24112) found +[14367] Forked 24113 +(24113) found +[14366] Forked 24114 +(24114) found +[14365] Forked 24115 +(24115) found +[14364] Forked 24116 +(24116) found +[14363] Forked 24117 +(24117) found +[14362] Forked 24118 +(24118) found +[14361] Forked 24119 +(24119) found +[14360] Forked 24120 +(24120) found +[14359] Forked 24121 +(24121) found +[14358] Forked 24122 +(24122) found +[14357] Forked 24123 +(24123) found +[14356] Forked 24124 +(24124) found +[14355] Forked 24125 +(24125) found +[14354] Forked 24126 +(24126) found +[14353] Forked 24127 +(24127) found +[14352] Forked 24128 +(24128) found +[14351] Forked 24129 +(24129) found +[14350] Forked 24130 +(24130) found +[14349] Forked 24131 +(24131) found +[14348] Forked 24132 +(24132) found +[14347] Forked 24133 +(24133) found +[14346] Forked 24134 +(24134) found +[14345] Forked 24135 +(24135) found +[14344] Forked 24136 +(24136) found +[14343] Forked 24137 +(24137) found +[14342] Forked 24138 +(24138) found +[14341] Forked 24139 +(24139) found +[14340] Forked 24140 +(24140) found +[14339] Forked 24141 +(24141) found +[14338] Forked 24142 +(24142) found +[14337] Forked 24143 +(24143) found +[14336] Forked 24144 +(24144) found +[14335] Forked 24145 +(24145) found +[14334] Forked 24146 +(24146) found +[14333] Forked 24147 +(24147) found +[14332] Forked 24148 +(24148) found +[14331] Forked 24149 +(24149) found +[14330] Forked 24150 +(24150) found +[14329] Forked 24151 +(24151) found +[14328] Forked 24152 +(24152) found +[14327] Forked 24153 +(24153) found +[14326] Forked 24154 +(24154) found +[14325] Forked 24155 +(24155) found +[14324] Forked 24156 +(24156) found +[14323] Forked 24157 +(24157) found +[14322] Forked 24158 +(24158) found +[14321] Forked 24159 +(24159) found +[14320] Forked 24160 +(24160) found +[14319] Forked 24161 +(24161) found +[14318] Forked 24162 +(24162) found +[14317] Forked 24163 +(24163) found +[14316] Forked 24164 +(24164) found +[14315] Forked 24165 +(24165) found +[14314] Forked 24166 +(24166) found +[14313] Forked 24167 +(24167) found +[14312] Forked 24168 +(24168) found +[14311] Forked 24169 +(24169) found +[14310] Forked 24170 +(24170) found +[14309] Forked 24171 +(24171) found +[14308] Forked 24172 +(24172) found +[14307] Forked 24173 +(24173) found +[14306] Forked 24174 +(24174) found +[14305] Forked 24175 +(24175) found +[14304] Forked 24176 +(24176) found +[14303] Forked 24177 +[14302] Forked 24178 +(24177) found +(24178) found +[14301] Forked 24179 +[14300] Forked 24180 +(24179) found +(24180) found +[14299] Forked 24181 +[14298] Forked 24182 +(24181) found +(24182) found +[14297] Forked 24183 +[14296] Forked 24184 +(24183) found +(24184) found +[14295] Forked 24185 +[14294] Forked 24186 +(24185) found +(24186) found +[14293] Forked 24187 +[14292] Forked 24188 +(24187) found +(24188) found +[14291] Forked 24189 +[14290] Forked 24190 +(24189) found +(24190) found +[14289] Forked 24191 +[14288] Forked 24192 +(24191) found +(24192) found +[14287] Forked 24193 +[14286] Forked 24194 +(24193) found +(24194) found +[14285] Forked 24195 +[14284] Forked 24196 +(24195) found +(24196) found +[14283] Forked 24197 +[14282] Forked 24198 +(24197) found +(24198) found +[14281] Forked 24199 +[14280] Forked 24200 +(24199) found +(24200) found +[14279] Forked 24201 +[14278] Forked 24202 +(24201) found +(24202) found +[14277] Forked 24203 +[14276] Forked 24204 +(24203) found +(24204) found +[14275] Forked 24205 +[14274] Forked 24206 +(24205) found +(24206) found +[14273] Forked 24207 +[14272] Forked 24208 +(24207) found +(24208) found +[14271] Forked 24209 +[14270] Forked 24210 +(24209) found +(24210) found +[14269] Forked 24211 +[14268] Forked 24212 +(24211) found +(24212) found +[14267] Forked 24213 +[14266] Forked 24214 +(24213) found +(24214) found +[14265] Forked 24215 +[14264] Forked 24216 +(24215) found +(24216) found +[14263] Forked 24217 +[14262] Forked 24218 +(24217) found +(24218) found +[14261] Forked 24219 +[14260] Forked 24220 +(24219) found +(24220) found +[14259] Forked 24221 +[14258] Forked 24222 +(24221) found +(24222) found +[14257] Forked 24223 +[14256] Forked 24224 +(24223) found +(24224) found +[14255] Forked 24225 +[14254] Forked 24226 +(24225) found +(24226) found +[14253] Forked 24227 +[14252] Forked 24228 +(24227) found +(24228) found +[14251] Forked 24229 +[14250] Forked 24230 +(24229) found +(24230) found +[14249] Forked 24231 +[14248] Forked 24232 +(24231) found +(24232) found +[14247] Forked 24233 +[14246] Forked 24234 +(24233) found +(24234) found +[14245] Forked 24235 +[14244] Forked 24236 +(24235) found +(24236) found +[14243] Forked 24237 +[14242] Forked 24238 +(24237) found +(24238) found +[14241] Forked 24239 +[14240] Forked 24240 +(24239) found +(24240) found +[14239] Forked 24241 +[14238] Forked 24242 +(24241) found +(24242) found +[14237] Forked 24243 +[14236] Forked 24244 +(24243) found +(24244) found +[14235] Forked 24245 +[14234] Forked 24246 +(24245) found +(24246) found +[14233] Forked 24247 +[14232] Forked 24248 +(24247) found +(24248) found +[14231] Forked 24249 +[14230] Forked 24250 +(24249) found +(24250) found +[14229] Forked 24251 +[14228] Forked 24252 +(24251) found +(24252) found +[14227] Forked 24253 +[14226] Forked 24254 +(24253) found +(24254) found +[14225] Forked 24255 +[14224] Forked 24256 +(24255) found +(24256) found +[14223] Forked 24257 +(24257) found +[14222] Forked 24258 +(24258) found +[14221] Forked 24259 +(24259) found +[14220] Forked 24260 +(24260) found +[14219] Forked 24261 +(24261) found +[14218] Forked 24262 +(24262) found +[14217] Forked 24263 +(24263) found +[14216] Forked 24264 +(24264) found +[14215] Forked 24265 +(24265) found +[14214] Forked 24266 +(24266) found +[14213] Forked 24267 +(24267) found +[14212] Forked 24268 +(24268) found +[14211] Forked 24269 +(24269) found +[14210] Forked 24270 +(24270) found +[14209] Forked 24271 +(24271) found +[14208] Forked 24272 +(24272) found +[14207] Forked 24273 +(24273) found +[14206] Forked 24274 +(24274) found +[14205] Forked 24275 +(24275) found +[14204] Forked 24276 +(24276) found +[14203] Forked 24277 +(24277) found +[14202] Forked 24278 +(24278) found +[14201] Forked 24279 +(24279) found +[14200] Forked 24280 +(24280) found +[14199] Forked 24281 +(24281) found +[14198] Forked 24282 +(24282) found +[14197] Forked 24283 +(24283) found +[14196] Forked 24284 +(24284) found +[14195] Forked 24285 +(24285) found +[14194] Forked 24286 +(24286) found +[14193] Forked 24287 +(24287) found +[14192] Forked 24288 +[14191] Forked 24289 +(24288) found +(24289) found +[14190] Forked 24290 +[14189] Forked 24291 +(24290) found +(24291) found +[14188] Forked 24292 +[14187] Forked 24294 +(24292) found +(24294) found +[14186] Forked 24295 +(24295) found +[14185] Forked 24296 +(24296) found +[14184] Forked 24297 +(24297) found +[14183] Forked 24298 +(24298) found +[14182] Forked 24299 +(24299) found +[14181] Forked 24300 +(24300) found +[14180] Forked 24301 +(24301) found +[14179] Forked 24302 +(24302) found +[14178] Forked 24303 +(24303) found +[14177] Forked 24304 +(24304) found +[14176] Forked 24305 +(24305) found +[14175] Forked 24306 +(24306) found +[14174] Forked 24307 +(24307) found +[14173] Forked 24308 +(24308) found +[14172] Forked 24309 +(24309) found +[14171] Forked 24310 +(24310) found +[14170] Forked 24311 +(24311) found +[14169] Forked 24312 +(24312) found +[14168] Forked 24313 +(24313) found +[14167] Forked 24314 +(24314) found +[14166] Forked 24315 +(24315) found +[14165] Forked 24316 +(24316) found +[14164] Forked 24317 +(24317) found +[14163] Forked 24319 +(24319) found +[14162] Forked 24320 +(24320) found +[14161] Forked 24321 +(24321) found +[14160] Forked 24322 +(24322) found +[14159] Forked 24323 +(24323) found +[14158] Forked 24324 +(24324) found +[14157] Forked 24325 +(24325) found +[14156] Forked 24326 +(24326) found +[14155] Forked 24327 +(24327) found +[14154] Forked 24328 +(24328) found +[14153] Forked 24329 +(24329) found +[14152] Forked 24330 +(24330) found +[14151] Forked 24331 +(24331) found +[14150] Forked 24332 +(24332) found +[14149] Forked 24333 +(24333) found +[14148] Forked 24334 +(24334) found +[14147] Forked 24335 +(24335) found +[14146] Forked 24336 +(24336) found +[14145] Forked 24337 +(24337) found +[14144] Forked 24338 +(24338) found +[14143] Forked 24339 +(24339) found +[14142] Forked 24340 +(24340) found +[14141] Forked 24341 +(24341) found +[14140] Forked 24342 +(24342) found +[14139] Forked 24343 +(24343) found +[14138] Forked 24344 +(24344) found +[14137] Forked 24345 +(24345) found +[14136] Forked 24346 +(24346) found +[14135] Forked 24347 +(24347) found +[14134] Forked 24348 +(24348) found +[14133] Forked 24349 +(24349) found +[14132] Forked 24350 +(24350) found +[14131] Forked 24351 +(24351) found +[14130] Forked 24352 +(24352) found +[14129] Forked 24353 +(24353) found +[14128] Forked 24354 +(24354) found +[14127] Forked 24355 +(24355) found +[14126] Forked 24356 +(24356) found +[14125] Forked 24357 +(24357) found +[14124] Forked 24358 +(24358) found +[14123] Forked 24359 +(24359) found +[14122] Forked 24360 +(24360) found +[14121] Forked 24361 +[14120] Forked 24362 +(24361) found +(24362) found +[14119] Forked 24363 +[14118] Forked 24364 +(24363) found +(24364) found +[14117] Forked 24365 +[14116] Forked 24366 +(24365) found +(24366) found +[14115] Forked 24367 +[14114] Forked 24368 +(24367) found +(24368) found +[14113] Forked 24369 +[14112] Forked 24370 +(24369) found +(24370) found +[14111] Forked 24371 +[14110] Forked 24372 +(24371) found +(24372) found +[14109] Forked 24373 +[14108] Forked 24374 +(24373) found +(24374) found +[14107] Forked 24375 +[14106] Forked 24376 +(24375) found +(24376) found +[14105] Forked 24377 +[14104] Forked 24378 +(24377) found +(24378) found +[14103] Forked 24379 +[14102] Forked 24380 +(24379) found +(24380) found +[14101] Forked 24381 +[14100] Forked 24382 +(24381) found +(24382) found +[14099] Forked 24383 +[14098] Forked 24384 +(24383) found +(24384) found +[14097] Forked 24385 +[14096] Forked 24386 +(24385) found +(24386) found +[14095] Forked 24387 +[14094] Forked 24388 +(24387) found +(24388) found +[14093] Forked 24389 +[14092] Forked 24390 +(24389) found +(24390) found +[14091] Forked 24391 +[14090] Forked 24392 +(24391) found +(24392) found +[14089] Forked 24393 +[14088] Forked 24394 +(24393) found +(24394) found +[14087] Forked 24395 +[14086] Forked 24396 +(24395) found +(24396) found +[14085] Forked 24397 +[14084] Forked 24398 +(24397) found +(24398) found +[14083] Forked 24399 +[14082] Forked 24400 +(24399) found +(24400) found +[14081] Forked 24401 +[14080] Forked 24402 +(24401) found +(24402) found +[14079] Forked 24403 +[14078] Forked 24404 +(24403) found +(24404) found +[14077] Forked 24405 +[14076] Forked 24406 +(24406) found +(24405) found +[14075] Forked 24407 +(24407) found +[14074] Forked 24408 +(24408) found +[14073] Forked 24409 +(24409) found +[14072] Forked 24410 +(24410) found +[14071] Forked 24411 +(24411) found +[14070] Forked 24412 +(24412) found +[14069] Forked 24413 +(24413) found +[14068] Forked 24414 +(24414) found +[14067] Forked 24415 +(24415) found +[14066] Forked 24416 +(24416) found +[14065] Forked 24417 +(24417) found +[14064] Forked 24418 +(24418) found +[14063] Forked 24419 +(24419) found +[14062] Forked 24420 +(24420) found +[14061] Forked 24421 +(24421) found +[14060] Forked 24422 +(24422) found +[14059] Forked 24423 +(24423) found +[14058] Forked 24424 +(24424) found +[14057] Forked 24425 +(24425) found +[14056] Forked 24426 +(24426) found +[14055] Forked 24427 +(24427) found +[14054] Forked 24428 +(24428) found +[14053] Forked 24429 +(24429) found +[14052] Forked 24430 +(24430) found +[14051] Forked 24431 +(24431) found +[14050] Forked 24432 +(24432) found +[14049] Forked 24433 +(24433) found +[14048] Forked 24434 +(24434) found +[14047] Forked 24435 +(24435) found +[14046] Forked 24436 +(24436) found +[14045] Forked 24437 +(24437) found +[14044] Forked 24438 +(24438) found +[14043] Forked 24439 +(24439) found +[14042] Forked 24440 +(24440) found +[14041] Forked 24441 +(24441) found +[14040] Forked 24442 +[14039] Forked 24443 +(24442) found +(24443) found +[14038] Forked 24444 +[14037] Forked 24445 +(24444) found +(24445) found +[14036] Forked 24446 +[14035] Forked 24447 +(24446) found +(24447) found +[14034] Forked 24448 +[14033] Forked 24449 +(24448) found +(24449) found +[14032] Forked 24450 +[14031] Forked 24451 +(24450) found +(24451) found +[14030] Forked 24452 +[14029] Forked 24453 +(24452) found +(24453) found +[14028] Forked 24454 +[14027] Forked 24455 +(24454) found +(24455) found +[14026] Forked 24456 +[14025] Forked 24457 +(24456) found +(24457) found +[14024] Forked 24458 +[14023] Forked 24459 +(24458) found +(24459) found +[14022] Forked 24460 +[14021] Forked 24461 +(24460) found +(24461) found +[14020] Forked 24462 +[14019] Forked 24463 +(24462) found +(24463) found +[14018] Forked 24464 +[14017] Forked 24465 +(24464) found +(24465) found +[14016] Forked 24466 +[14015] Forked 24467 +(24466) found +(24467) found +[14014] Forked 24468 +[14013] Forked 24469 +(24468) found +(24469) found +[14012] Forked 24470 +[14011] Forked 24473 +(24470) found +(24473) found +[14010] Forked 24474 +[14009] Forked 24475 +(24474) found +(24475) found +[14008] Forked 24476 +[14007] Forked 24477 +(24476) found +(24477) found +[14006] Forked 24478 +[14005] Forked 24479 +(24478) found +(24479) found +[14004] Forked 24480 +[14003] Forked 24481 +(24480) found +(24481) found +[14002] Forked 24482 +[14001] Forked 24483 +(24482) found +(24483) found +[14000] Forked 24484 +[13999] Forked 24485 +(24484) found +(24485) found +[13998] Forked 24486 +[13997] Forked 24487 +(24486) found +(24487) found +[13996] Forked 24488 +[13995] Forked 24489 +(24488) found +(24489) found +[13994] Forked 24490 +[13993] Forked 24491 +(24490) found +(24491) found +[13992] Forked 24492 +[13991] Forked 24493 +(24492) found +(24493) found +[13990] Forked 24494 +[13989] Forked 24495 +(24494) found +(24495) found +[13988] Forked 24496 +[13987] Forked 24497 +(24496) found +(24497) found +[13986] Forked 24498 +[13985] Forked 24499 +(24498) found +(24499) found +[13984] Forked 24500 +[13983] Forked 24501 +(24500) found +(24501) found +[13982] Forked 24502 +[13981] Forked 24503 +(24502) found +(24503) found +[13980] Forked 24504 +[13979] Forked 24505 +(24504) found +(24505) found +[13978] Forked 24506 +[13977] Forked 24507 +(24506) found +(24507) found +[13976] Forked 24508 +[13975] Forked 24509 +(24508) found +(24509) found +[13974] Forked 24510 +[13973] Forked 24511 +(24510) found +(24511) found +[13972] Forked 24512 +[13971] Forked 24513 +(24512) found +(24513) found +[13970] Forked 24514 +[13969] Forked 24515 +(24514) found +(24515) found +[13968] Forked 24516 +[13967] Forked 24517 +(24516) found +(24517) found +[13966] Forked 24518 +[13965] Forked 24519 +(24518) found +(24519) found +[13964] Forked 24520 +[13963] Forked 24521 +(24520) found +(24521) found +[13962] Forked 24522 +(24522) found +[13961] Forked 24523 +[13960] Forked 24524 +(24523) found +(24524) found +[13959] Forked 24525 +[13958] Forked 24526 +(24525) found +(24526) found +[13957] Forked 24527 +[13956] Forked 24528 +(24527) found +(24528) found +[13955] Forked 24529 +[13954] Forked 24530 +(24529) found +(24530) found +[13953] Forked 24531 +[13952] Forked 24532 +(24531) found +(24532) found +[13951] Forked 24533 +[13950] Forked 24534 +(24533) found +(24534) found +[13949] Forked 24535 +[13948] Forked 24536 +(24535) found +(24536) found +[13947] Forked 24537 +[13946] Forked 24538 +(24537) found +(24538) found +[13945] Forked 24539 +[13944] Forked 24540 +(24539) found +(24540) found +[13943] Forked 24541 +[13942] Forked 24542 +(24541) found +(24542) found +[13941] Forked 24543 +[13940] Forked 24544 +(24543) found +(24544) found +[13939] Forked 24545 +[13938] Forked 24546 +(24545) found +(24546) found +[13937] Forked 24547 +[13936] Forked 24548 +(24547) found +(24548) found +[13935] Forked 24549 +[13934] Forked 24550 +(24549) found +(24550) found +[13933] Forked 24551 +[13932] Forked 24552 +(24551) found +(24552) found +[13931] Forked 24553 +[13930] Forked 24554 +(24553) found +(24554) found +[13929] Forked 24555 +[13928] Forked 24556 +(24555) found +(24556) found +[13927] Forked 24557 +[13926] Forked 24558 +(24557) found +(24558) found +[13925] Forked 24559 +[13924] Forked 24560 +(24559) found +(24560) found +[13923] Forked 24561 +[13922] Forked 24562 +(24561) found +(24562) found +[13921] Forked 24563 +[13920] Forked 24564 +(24563) found +(24564) found +[13919] Forked 24565 +[13918] Forked 24566 +(24565) found +(24566) found +[13917] Forked 24567 +[13916] Forked 24568 +(24567) found +(24568) found +[13915] Forked 24569 +[13914] Forked 24570 +(24569) found +(24570) found +[13913] Forked 24571 +[13912] Forked 24572 +(24571) found +(24572) found +[13911] Forked 24573 +[13910] Forked 24574 +(24573) found +(24574) found +[13909] Forked 24575 +[13908] Forked 24576 +(24575) found +(24576) found +[13907] Forked 24577 +[13906] Forked 24578 +(24577) found +(24578) found +[13905] Forked 24579 +[13904] Forked 24580 +(24579) found +(24580) found +[13903] Forked 24581 +[13902] Forked 24582 +(24581) found +(24582) found +[13901] Forked 24583 +[13900] Forked 24585 +(24583) found +(24585) found +[13899] Forked 24586 +(24586) found +[13898] Forked 24587 +(24587) found +[13897] Forked 24588 +(24588) found +[13896] Forked 24589 +(24589) found +[13895] Forked 24590 +(24590) found +[13894] Forked 24591 +(24591) found +[13893] Forked 24592 +(24592) found +[13892] Forked 24593 +(24593) found +[13891] Forked 24594 +(24594) found +[13890] Forked 24595 +(24595) found +[13889] Forked 24596 +(24596) found +[13888] Forked 24597 +(24597) found +[13887] Forked 24598 +(24598) found +[13886] Forked 24599 +(24599) found +[13885] Forked 24600 +(24600) found +[13884] Forked 24601 +(24601) found +[13883] Forked 24602 +(24602) found +[13882] Forked 24603 +(24603) found +[13881] Forked 24604 +(24604) found +[13880] Forked 24605 +(24605) found +[13879] Forked 24606 +(24606) found +[13878] Forked 24607 +(24607) found +[13877] Forked 24608 +(24608) found +[13876] Forked 24609 +(24609) found +[13875] Forked 24610 +(24610) found +[13874] Forked 24611 +(24611) found +[13873] Forked 24612 +(24612) found +[13872] Forked 24613 +(24613) found +[13871] Forked 24614 +(24614) found +[13870] Forked 24615 +(24615) found +[13869] Forked 24616 +(24616) found +[13868] Forked 24617 +(24617) found +[13867] Forked 24618 +(24618) found +[13866] Forked 24619 +(24619) found +[13865] Forked 24620 +(24620) found +[13864] Forked 24621 +(24621) found +[13863] Forked 24622 +(24622) found +[13862] Forked 24623 +(24623) found +[13861] Forked 24624 +(24624) found +[13860] Forked 24625 +(24625) found +[13859] Forked 24626 +(24626) found +[13858] Forked 24627 +(24627) found +[13857] Forked 24628 +(24628) found +[13856] Forked 24629 +(24629) found +[13855] Forked 24630 +(24630) found +[13854] Forked 24631 +(24631) found +[13853] Forked 24632 +(24632) found +[13852] Forked 24633 +(24633) found +[13851] Forked 24634 +(24634) found +[13850] Forked 24635 +(24635) found +[13849] Forked 24636 +(24636) found +[13848] Forked 24637 +(24637) found +[13847] Forked 24638 +(24638) found +[13846] Forked 24639 +(24639) found +[13845] Forked 24640 +(24640) found +[13844] Forked 24641 +(24641) found +[13843] Forked 24642 +(24642) found +[13842] Forked 24643 +(24643) found +[13841] Forked 24644 +(24644) found +[13840] Forked 24645 +(24645) found +[13839] Forked 24646 +(24646) found +[13838] Forked 24647 +(24647) found +[13837] Forked 24648 +(24648) found +[13836] Forked 24649 +(24649) found +[13835] Forked 24650 +(24650) found +[13834] Forked 24651 +(24651) found +[13833] Forked 24652 +(24652) found +[13832] Forked 24653 +(24653) found +[13831] Forked 24654 +(24654) found +[13830] Forked 24655 +(24655) found +[13829] Forked 24656 +(24656) found +[13828] Forked 24657 +(24657) found +[13827] Forked 24658 +(24658) found +[13826] Forked 24659 +(24659) found +[13825] Forked 24660 +(24660) found +[13824] Forked 24661 +(24661) found +[13823] Forked 24662 +(24662) found +[13822] Forked 24663 +(24663) found +[13821] Forked 24664 +(24664) found +[13820] Forked 24665 +(24665) found +[13819] Forked 24666 +(24666) found +[13818] Forked 24667 +(24667) found +[13817] Forked 24668 +(24668) found +[13816] Forked 24669 +(24669) found +[13815] Forked 24670 +(24670) found +[13814] Forked 24671 +(24671) found +[13813] Forked 24672 +(24672) found +[13812] Forked 24673 +(24673) found +[13811] Forked 24674 +(24674) found +[13810] Forked 24675 +(24675) found +[13809] Forked 24676 +(24676) found +[13808] Forked 24677 +(24677) found +[13807] Forked 24678 +(24678) found +[13806] Forked 24679 +(24679) found +[13805] Forked 24680 +(24680) found +[13804] Forked 24681 +(24681) found +[13803] Forked 24682 +(24682) found +[13802] Forked 24683 +(24683) found +[13801] Forked 24684 +(24684) found +[13800] Forked 24685 +(24685) found +[13799] Forked 24686 +(24686) found +[13798] Forked 24687 +(24687) found +[13797] Forked 24688 +[13796] Forked 24690 +(24688) found +(24690) found +[13795] Forked 24691 +(24691) found +[13794] Forked 24692 +(24692) found +[13793] Forked 24693 +(24693) found +[13792] Forked 24694 +[13791] Forked 24695 +(24694) found +(24695) found +[13790] Forked 24696 +[13789] Forked 24697 +(24696) found +(24697) found +[13788] Forked 24698 +[13787] Forked 24699 +(24698) found +(24699) found +[13786] Forked 24700 +[13785] Forked 24701 +(24700) found +(24701) found +[13784] Forked 24702 +[13783] Forked 24703 +(24702) found +(24703) found +[13782] Forked 24704 +[13781] Forked 24705 +(24704) found +(24705) found +[13780] Forked 24706 +[13779] Forked 24707 +(24706) found +(24707) found +[13778] Forked 24708 +[13777] Forked 24709 +(24708) found +(24709) found +[13776] Forked 24710 +[13775] Forked 24711 +(24710) found +(24711) found +[13774] Forked 24712 +[13773] Forked 24713 +(24712) found +(24713) found +[13772] Forked 24714 +[13771] Forked 24715 +(24714) found +(24715) found +[13770] Forked 24716 +[13769] Forked 24717 +(24716) found +(24717) found +[13768] Forked 24718 +[13767] Forked 24719 +(24718) found +(24719) found +[13766] Forked 24720 +[13765] Forked 24721 +(24720) found +(24721) found +[13764] Forked 24722 +[13763] Forked 24723 +(24722) found +(24723) found +[13762] Forked 24724 +[13761] Forked 24725 +(24724) found +(24725) found +[13760] Forked 24726 +[13759] Forked 24727 +(24726) found +(24727) found +[13758] Forked 24728 +[13757] Forked 24729 +(24728) found +(24729) found +[13756] Forked 24730 +[13755] Forked 24731 +(24730) found +(24731) found +[13754] Forked 24732 +[13753] Forked 24733 +(24732) found +(24733) found +[13752] Forked 24734 +(24734) found +[13751] Forked 24735 +(24735) found +[13750] Forked 24736 +(24736) found +[13749] Forked 24737 +(24737) found +[13748] Forked 24738 +(24738) found +[13747] Forked 24739 +(24739) found +[13746] Forked 24740 +(24740) found +[13745] Forked 24741 +(24741) found +[13744] Forked 24742 +(24742) found +[13743] Forked 24743 +(24743) found +[13742] Forked 24744 +(24744) found +[13741] Forked 24745 +(24745) found +[13740] Forked 24746 +(24746) found +[13739] Forked 24747 +(24747) found +[13738] Forked 24748 +(24748) found +[13737] Forked 24749 +(24749) found +[13736] Forked 24750 +(24750) found +[13735] Forked 24751 +(24751) found +[13734] Forked 24752 +(24752) found +[13733] Forked 24753 +(24753) found +[13732] Forked 24754 +(24754) found +[13731] Forked 24755 +(24755) found +[13730] Forked 24756 +(24756) found +[13729] Forked 24757 +(24757) found +[13728] Forked 24758 +(24758) found +[13727] Forked 24759 +(24759) found +[13726] Forked 24760 +(24760) found +[13725] Forked 24761 +(24761) found +[13724] Forked 24762 +(24762) found +[13723] Forked 24763 +(24763) found +[13722] Forked 24764 +(24764) found +[13721] Forked 24765 +(24765) found +[13720] Forked 24766 +(24766) found +[13719] Forked 24767 +(24767) found +[13718] Forked 24768 +(24768) found +[13717] Forked 24769 +(24769) found +[13716] Forked 24770 +[13715] Forked 24771 +(24770) found +(24771) found +[13714] Forked 24772 +[13713] Forked 24773 +(24772) found +(24773) found +[13712] Forked 24774 +[13711] Forked 24776 +(24774) found +(24776) found +[13710] Forked 24777 +(24777) found +[13709] Forked 24778 +(24778) found +[13708] Forked 24779 +(24779) found +[13707] Forked 24780 +(24780) found +[13706] Forked 24781 +(24781) found +[13705] Forked 24782 +(24782) found +[13704] Forked 24783 +(24783) found +[13703] Forked 24784 +(24784) found +[13702] Forked 24785 +(24785) found +[13701] Forked 24786 +(24786) found +[13700] Forked 24787 +(24787) found +[13699] Forked 24788 +(24788) found +[13698] Forked 24789 +(24789) found +[13697] Forked 24790 +(24790) found +[13696] Forked 24791 +(24791) found +[13695] Forked 24792 +(24792) found +[13694] Forked 24793 +(24793) found +[13693] Forked 24794 +(24794) found +[13692] Forked 24795 +(24795) found +[13691] Forked 24796 +(24796) found +[13690] Forked 24797 +(24797) found +[13689] Forked 24798 +(24798) found +[13688] Forked 24799 +(24799) found +[13687] Forked 24800 +(24800) found +[13686] Forked 24801 +(24801) found +[13685] Forked 24802 +(24802) found +[13684] Forked 24803 +(24803) found +[13683] Forked 24804 +(24804) found +[13682] Forked 24805 +(24805) found +[13681] Forked 24806 +(24806) found +[13680] Forked 24807 +(24807) found +[13679] Forked 24808 +(24808) found +[13678] Forked 24809 +(24809) found +[13677] Forked 24810 +(24810) found +[13676] Forked 24811 +(24811) found +[13675] Forked 24812 +(24812) found +[13674] Forked 24813 +(24813) found +[13673] Forked 24814 +(24814) found +[13672] Forked 24815 +(24815) found +[13671] Forked 24816 +(24816) found +[13670] Forked 24817 +(24817) found +[13669] Forked 24818 +(24818) found +[13668] Forked 24819 +(24819) found +[13667] Forked 24820 +(24820) found +[13666] Forked 24821 +(24821) found +[13665] Forked 24822 +(24822) found +[13664] Forked 24823 +(24823) found +[13663] Forked 24824 +(24824) found +[13662] Forked 24825 +(24825) found +[13661] Forked 24826 +(24826) found +[13660] Forked 24827 +(24827) found +[13659] Forked 24828 +(24828) found +[13658] Forked 24829 +(24829) found +[13657] Forked 24830 +(24830) found +[13656] Forked 24831 +(24831) found +[13655] Forked 24832 +(24832) found +[13654] Forked 24833 +(24833) found +[13653] Forked 24834 +(24834) found +[13652] Forked 24835 +(24835) found +[13651] Forked 24836 +(24836) found +[13650] Forked 24837 +(24837) found +[13649] Forked 24838 +(24838) found +[13648] Forked 24839 +(24839) found +[13647] Forked 24840 +(24840) found +[13646] Forked 24841 +(24841) found +[13645] Forked 24842 +(24842) found +[13644] Forked 24843 +(24843) found +[13643] Forked 24844 +(24844) found +[13642] Forked 24845 +(24845) found +[13641] Forked 24846 +(24846) found +[13640] Forked 24847 +(24847) found +[13639] Forked 24848 +(24848) found +[13638] Forked 24849 +(24849) found +[13637] Forked 24850 +(24850) found +[13636] Forked 24851 +(24851) found +[13635] Forked 24852 +(24852) found +[13634] Forked 24853 +(24853) found +[13633] Forked 24854 +(24854) found +[13632] Forked 24855 +(24855) found +[13631] Forked 24856 +(24856) found +[13630] Forked 24857 +(24857) found +[13629] Forked 24858 +(24858) found +[13628] Forked 24859 +(24859) found +[13627] Forked 24860 +(24860) found +[13626] Forked 24861 +(24861) found +[13625] Forked 24862 +(24862) found +[13624] Forked 24863 +(24863) found +[13623] Forked 24864 +(24864) found +[13622] Forked 24865 +(24865) found +[13621] Forked 24866 +(24866) found +[13620] Forked 24867 +(24867) found +[13619] Forked 24868 +(24868) found +[13618] Forked 24869 +(24869) found +[13617] Forked 24870 +(24870) found +[13616] Forked 24871 +(24871) found +[13615] Forked 24872 +(24872) found +[13614] Forked 24873 +(24873) found +[13613] Forked 24874 +(24874) found +[13612] Forked 24875 +(24875) found +[13611] Forked 24876 +(24876) found +[13610] Forked 24877 +(24877) found +[13609] Forked 24878 +(24878) found +[13608] Forked 24879 +[13607] Forked 24880 +(24879) found +(24880) found +[13606] Forked 24881 +[13605] Forked 24882 +(24881) found +(24882) found +[13604] Forked 24883 +[13603] Forked 24884 +(24883) found +(24884) found +[13602] Forked 24885 +[13601] Forked 24886 +(24885) found +(24886) found +[13600] Forked 24887 +[13599] Forked 24888 +(24887) found +(24888) found +[13598] Forked 24889 +(24889) found +[13597] Forked 24890 +[13596] Forked 24891 +(24890) found +(24891) found +[13595] Forked 24892 +[13594] Forked 24893 +(24892) found +(24893) found +[13593] Forked 24894 +[13592] Forked 24895 +(24894) found +(24895) found +[13591] Forked 24896 +[13590] Forked 24897 +(24896) found +(24897) found +[13589] Forked 24898 +[13588] Forked 24899 +(24898) found +(24899) found +[13587] Forked 24900 +[13586] Forked 24901 +(24900) found +(24901) found +[13585] Forked 24902 +[13584] Forked 24903 +(24902) found +(24903) found +[13583] Forked 24904 +[13582] Forked 24905 +(24904) found +(24905) found +[13581] Forked 24906 +[13580] Forked 24907 +(24906) found +(24907) found +[13579] Forked 24908 +[13578] Forked 24909 +(24908) found +(24909) found +[13577] Forked 24910 +[13576] Forked 24911 +(24910) found +(24911) found +[13575] Forked 24912 +[13574] Forked 24913 +(24912) found +(24913) found +[13573] Forked 24914 +[13572] Forked 24915 +(24914) found +(24915) found +[13571] Forked 24916 +[13570] Forked 24917 +(24916) found +(24917) found +[13569] Forked 24918 +[13568] Forked 24919 +(24918) found +(24919) found +[13567] Forked 24920 +[13566] Forked 24921 +(24920) found +(24921) found +[13565] Forked 24922 +[13564] Forked 24923 +(24922) found +(24923) found +[13563] Forked 24924 +[13562] Forked 24925 +(24924) found +(24925) found +[13561] Forked 24926 +[13560] Forked 24927 +(24926) found +(24927) found +[13559] Forked 24928 +[13558] Forked 24929 +(24928) found +(24929) found +[13557] Forked 24930 +[13556] Forked 24931 +(24930) found +(24931) found +[13555] Forked 24932 +[13554] Forked 24933 +(24932) found +(24933) found +[13553] Forked 24934 +[13552] Forked 24935 +(24934) found +(24935) found +[13551] Forked 24936 +[13550] Forked 24937 +(24936) found +(24937) found +[13549] Forked 24938 +[13548] Forked 24939 +(24938) found +(24939) found +[13547] Forked 24940 +[13546] Forked 24941 +(24940) found +(24941) found +[13545] Forked 24942 +[13544] Forked 24943 +(24942) found +(24943) found +[13543] Forked 24944 +[13542] Forked 24945 +(24944) found +(24945) found +[13541] Forked 24946 +[13540] Forked 24947 +(24946) found +(24947) found +[13539] Forked 24948 +[13538] Forked 24949 +(24948) found +(24949) found +[13537] Forked 24950 +[13536] Forked 24951 +(24950) found +(24951) found +[13535] Forked 24952 +[13534] Forked 24953 +(24952) found +(24953) found +[13533] Forked 24954 +[13532] Forked 24955 +(24954) found +(24955) found +[13531] Forked 24956 +[13530] Forked 24957 +(24956) found +(24957) found +[13529] Forked 24958 +[13528] Forked 24959 +(24958) found +(24959) found +[13527] Forked 24960 +[13526] Forked 24961 +(24960) found +(24961) found +[13525] Forked 24962 +[13524] Forked 24963 +(24962) found +(24963) found +[13523] Forked 24964 +[13522] Forked 24965 +(24964) found +(24965) found +[13521] Forked 24966 +[13520] Forked 24967 +(24966) found +(24967) found +[13519] Forked 24968 +[13518] Forked 24969 +(24968) found +(24969) found +[13517] Forked 24970 +(24970) found +[13516] Forked 24971 +(24971) found +[13515] Forked 24972 +(24972) found +[13514] Forked 24973 +(24973) found +[13513] Forked 24974 +(24974) found +[13512] Forked 24975 +(24975) found +[13511] Forked 24976 +(24976) found +[13510] Forked 24977 +(24977) found +[13509] Forked 24978 +(24978) found +[13508] Forked 24979 +(24979) found +[13507] Forked 24980 +(24980) found +[13506] Forked 24981 +(24981) found +[13505] Forked 24982 +(24982) found +[13504] Forked 24983 +(24983) found +[13503] Forked 24984 +(24984) found +[13502] Forked 24985 +(24985) found +[13501] Forked 24986 +(24986) found +[13500] Forked 24987 +(24987) found +[13499] Forked 24988 +(24988) found +[13498] Forked 24989 +(24989) found +[13497] Forked 24990 +(24990) found +[13496] Forked 24991 +(24991) found +[13495] Forked 24992 +(24992) found +[13494] Forked 24993 +(24993) found +[13493] Forked 24994 +(24994) found +[13492] Forked 24996 +(24996) found +[13491] Forked 24997 +(24997) found +[13490] Forked 24998 +(24998) found +[13489] Forked 24999 +(24999) found +[13488] Forked 25000 +(25000) found +[13487] Forked 25001 +(25001) found +[13486] Forked 25002 +(25002) found +[13485] Forked 25003 +(25003) found +[13484] Forked 25004 +(25004) found +[13483] Forked 25005 +(25005) found +[13482] Forked 25006 +(25006) found +[13481] Forked 25007 +[13480] Forked 25008 +(25007) found +(25008) found +[13479] Forked 25009 +[13478] Forked 25010 +(25009) found +(25010) found +[13477] Forked 25011 +[13476] Forked 25013 +(25011) found +(25013) found +[13475] Forked 25014 +(25014) found +[13474] Forked 25015 +(25015) found +[13473] Forked 25016 +(25016) found +[13472] Forked 25017 +(25017) found +[13471] Forked 25018 +(25018) found +[13470] Forked 25019 +(25019) found +[13469] Forked 25020 +(25020) found +[13468] Forked 25021 +(25021) found +[13467] Forked 25022 +(25022) found +[13466] Forked 25023 +(25023) found +[13465] Forked 25024 +(25024) found +[13464] Forked 25025 +(25025) found +[13463] Forked 25026 +(25026) found +[13462] Forked 25027 +(25027) found +[13461] Forked 25028 +(25028) found +[13460] Forked 25029 +(25029) found +[13459] Forked 25030 +(25030) found +[13458] Forked 25031 +(25031) found +[13457] Forked 25032 +(25032) found +[13456] Forked 25033 +(25033) found +[13455] Forked 25034 +(25034) found +[13454] Forked 25035 +(25035) found +[13453] Forked 25036 +(25036) found +[13452] Forked 25037 +(25037) found +[13451] Forked 25038 +(25038) found +[13450] Forked 25039 +(25039) found +[13449] Forked 25040 +(25040) found +[13448] Forked 25041 +(25041) found +[13447] Forked 25042 +(25042) found +[13446] Forked 25043 +(25043) found +[13445] Forked 25044 +(25044) found +[13444] Forked 25045 +(25045) found +[13443] Forked 25046 +(25046) found +[13442] Forked 25047 +(25047) found +[13441] Forked 25048 +(25048) found +[13440] Forked 25049 +(25049) found +[13439] Forked 25050 +(25050) found +[13438] Forked 25051 +(25051) found +[13437] Forked 25052 +(25052) found +[13436] Forked 25053 +(25053) found +[13435] Forked 25054 +(25054) found +[13434] Forked 25055 +(25055) found +[13433] Forked 25056 +(25056) found +[13432] Forked 25057 +(25057) found +[13431] Forked 25058 +(25058) found +[13430] Forked 25059 +(25059) found +[13429] Forked 25060 +(25060) found +[13428] Forked 25061 +(25061) found +[13427] Forked 25062 +(25062) found +[13426] Forked 25063 +(25063) found +[13425] Forked 25064 +(25064) found +[13424] Forked 25065 +(25065) found +[13423] Forked 25066 +(25066) found +[13422] Forked 25067 +(25067) found +[13421] Forked 25068 +(25068) found +[13420] Forked 25069 +(25069) found +[13419] Forked 25070 +(25070) found +[13418] Forked 25071 +(25071) found +[13417] Forked 25072 +(25072) found +[13416] Forked 25073 +(25073) found +[13415] Forked 25074 +(25074) found +[13414] Forked 25075 +(25075) found +[13413] Forked 25076 +(25076) found +[13412] Forked 25077 +(25077) found +[13411] Forked 25078 +(25078) found +[13410] Forked 25079 +[13409] Forked 25080 +(25079) found +(25080) found +[13408] Forked 25081 +[13407] Forked 25082 +(25081) found +(25082) found +[13406] Forked 25083 +[13405] Forked 25084 +(25083) found +(25084) found +[13404] Forked 25085 +[13403] Forked 25086 +(25085) found +(25086) found +[13402] Forked 25087 +[13401] Forked 25088 +(25087) found +(25088) found +[13400] Forked 25089 +[13399] Forked 25090 +(25089) found +(25090) found +[13398] Forked 25091 +[13397] Forked 25092 +(25091) found +(25092) found +[13396] Forked 25093 +[13395] Forked 25094 +(25093) found +(25094) found +[13394] Forked 25095 +[13393] Forked 25096 +(25095) found +(25096) found +[13392] Forked 25097 +[13391] Forked 25098 +(25097) found +(25098) found +[13390] Forked 25099 +[13389] Forked 25100 +(25099) found +(25100) found +[13388] Forked 25101 +[13387] Forked 25102 +(25101) found +(25102) found +[13386] Forked 25103 +[13385] Forked 25104 +(25103) found +(25104) found +[13384] Forked 25105 +[13383] Forked 25106 +(25105) found +(25106) found +[13382] Forked 25107 +[13381] Forked 25108 +(25107) found +(25108) found +[13380] Forked 25109 +[13379] Forked 25110 +(25109) found +(25110) found +[13378] Forked 25111 +[13377] Forked 25112 +(25111) found +(25112) found +[13376] Forked 25113 +[13375] Forked 25114 +(25113) found +(25114) found +[13374] Forked 25115 +[13373] Forked 25116 +(25115) found +(25116) found +[13372] Forked 25117 +[13371] Forked 25118 +(25117) found +(25118) found +[13370] Forked 25119 +[13369] Forked 25120 +(25119) found +(25120) found +[13368] Forked 25121 +[13367] Forked 25122 +(25121) found +(25122) found +[13366] Forked 25123 +[13365] Forked 25124 +(25123) found +(25124) found +[13364] Forked 25125 +[13363] Forked 25126 +(25125) found +(25126) found +[13362] Forked 25127 +[13361] Forked 25128 +(25127) found +(25128) found +[13360] Forked 25129 +[13359] Forked 25130 +(25129) found +(25130) found +[13358] Forked 25131 +[13357] Forked 25132 +(25131) found +(25132) found +[13356] Forked 25133 +[13355] Forked 25134 +(25133) found +(25134) found +[13354] Forked 25135 +[13353] Forked 25136 +(25135) found +(25136) found +[13352] Forked 25137 +[13351] Forked 25138 +(25137) found +(25138) found +[13350] Forked 25139 +[13349] Forked 25140 +(25139) found +(25140) found +[13348] Forked 25141 +[13347] Forked 25142 +(25141) found +(25142) found +[13346] Forked 25143 +[13345] Forked 25144 +(25143) found +(25144) found +[13344] Forked 25145 +[13343] Forked 25146 +(25145) found +(25146) found +[13342] Forked 25147 +[13341] Forked 25148 +(25147) found +(25148) found +[13340] Forked 25149 +[13339] Forked 25150 +(25149) found +(25150) found +[13338] Forked 25151 +[13337] Forked 25152 +(25151) found +(25152) found +[13336] Forked 25153 +[13335] Forked 25154 +(25153) found +(25154) found +[13334] Forked 25155 +[13333] Forked 25156 +(25155) found +(25156) found +[13332] Forked 25157 +[13331] Forked 25158 +(25157) found +(25158) found +[13330] Forked 25159 +[13329] Forked 25160 +(25159) found +(25160) found +[13328] Forked 25161 +[13327] Forked 25162 +(25161) found +(25162) found +[13326] Forked 25163 +[13325] Forked 25164 +(25163) found +(25164) found +[13324] Forked 25165 +[13323] Forked 25166 +(25165) found +(25166) found +[13322] Forked 25167 +[13321] Forked 25168 +(25167) found +(25168) found +[13320] Forked 25169 +[13319] Forked 25170 +(25169) found +(25170) found +[13318] Forked 25171 +[13317] Forked 25172 +(25171) found +(25172) found +[13316] Forked 25173 +[13315] Forked 25174 +(25173) found +(25174) found +[13314] Forked 25175 +[13313] Forked 25176 +(25175) found +(25176) found +[13312] Forked 25177 +[13311] Forked 25178 +(25177) found +(25178) found +[13310] Forked 25179 +[13309] Forked 25180 +(25179) found +(25180) found +[13308] Forked 25181 +[13307] Forked 25182 +(25181) found +(25182) found +[13306] Forked 25183 +[13305] Forked 25184 +(25183) found +(25184) found +[13304] Forked 25185 +[13303] Forked 25186 +(25185) found +(25186) found +[13302] Forked 25187 +[13301] Forked 25188 +(25187) found +(25188) found +[13300] Forked 25189 +[13299] Forked 25190 +(25189) found +(25190) found +[13298] Forked 25191 +[13297] Forked 25192 +(25191) found +(25192) found +[13296] Forked 25193 +[13295] Forked 25194 +(25193) found +(25194) found +[13294] Forked 25195 +[13293] Forked 25196 +(25195) found +(25196) found +[13292] Forked 25197 +[13291] Forked 25198 +(25197) found +(25198) found +[13290] Forked 25199 +[13289] Forked 25200 +(25199) found +(25200) found +[13288] Forked 25201 +[13287] Forked 25202 +(25201) found +(25202) found +[13286] Forked 25203 +[13285] Forked 25204 +(25203) found +(25204) found +[13284] Forked 25205 +[13283] Forked 25206 +(25205) found +(25206) found +[13282] Forked 25207 +[13281] Forked 25208 +(25207) found +(25208) found +[13280] Forked 25209 +[13279] Forked 25210 +(25209) found +(25210) found +[13278] Forked 25211 +[13277] Forked 25212 +(25211) found +(25212) found +[13276] Forked 25213 +[13275] Forked 25214 +(25213) found +(25214) found +[13274] Forked 25215 +[13273] Forked 25216 +(25215) found +(25216) found +[13272] Forked 25217 +[13271] Forked 25218 +(25217) found +(25218) found +[13270] Forked 25219 +[13269] Forked 25220 +(25219) found +(25220) found +[13268] Forked 25221 +[13267] Forked 25222 +(25221) found +(25222) found +[13266] Forked 25223 +[13265] Forked 25224 +(25223) found +(25224) found +[13264] Forked 25225 +[13263] Forked 25226 +(25225) found +(25226) found +[13262] Forked 25227 +[13261] Forked 25228 +(25227) found +(25228) found +[13260] Forked 25229 +[13259] Forked 25230 +(25229) found +(25230) found +[13258] Forked 25231 +[13257] Forked 25232 +(25231) found +(25232) found +[13256] Forked 25233 +[13255] Forked 25234 +(25233) found +(25234) found +[13254] Forked 25235 +[13253] Forked 25236 +(25235) found +(25236) found +[13252] Forked 25237 +[13251] Forked 25238 +(25237) found +(25238) found +[13250] Forked 25239 +[13249] Forked 25240 +(25239) found +(25240) found +[13248] Forked 25241 +[13247] Forked 25242 +(25241) found +(25242) found +[13246] Forked 25243 +[13245] Forked 25244 +(25243) found +(25244) found +[13244] Forked 25245 +[13243] Forked 25246 +(25245) found +(25246) found +[13242] Forked 25247 +[13241] Forked 25248 +(25247) found +(25248) found +[13240] Forked 25249 +[13239] Forked 25250 +(25249) found +(25250) found +[13238] Forked 25251 +[13237] Forked 25252 +(25251) found +(25252) found +[13236] Forked 25253 +[13235] Forked 25254 +(25253) found +(25254) found +[13234] Forked 25255 +[13233] Forked 25256 +(25255) found +(25256) found +[13232] Forked 25257 +[13231] Forked 25258 +(25257) found +(25258) found +[13230] Forked 25259 +[13229] Forked 25260 +(25259) found +(25260) found +[13228] Forked 25261 +(25261) found +[13227] Forked 25262 +(25262) found +[13226] Forked 25263 +(25263) found +[13225] Forked 25264 +(25264) found +[13224] Forked 25265 +(25265) found +[13223] Forked 25266 +(25266) found +[13222] Forked 25267 +(25267) found +[13221] Forked 25268 +(25268) found +[13220] Forked 25269 +(25269) found +[13219] Forked 25270 +(25270) found +[13218] Forked 25271 +(25271) found +[13217] Forked 25272 +(25272) found +[13216] Forked 25273 +(25273) found +[13215] Forked 25274 +(25274) found +[13214] Forked 25275 +(25275) found +[13213] Forked 25276 +(25276) found +[13212] Forked 25277 +(25277) found +[13211] Forked 25278 +(25278) found +[13210] Forked 25279 +(25279) found +[13209] Forked 25280 +(25280) found +[13208] Forked 25281 +(25281) found +[13207] Forked 25282 +(25282) found +[13206] Forked 25283 +(25283) found +[13205] Forked 25284 +(25284) found +[13204] Forked 25285 +(25285) found +[13203] Forked 25286 +(25286) found +[13202] Forked 25287 +(25287) found +[13201] Forked 25288 +(25288) found +[13200] Forked 25289 +(25289) found +[13199] Forked 25290 +(25290) found +[13198] Forked 25291 +(25291) found +[13197] Forked 25292 +(25292) found +[13196] Forked 25293 +(25293) found +[13195] Forked 25294 +(25294) found +[13194] Forked 25295 +[13193] Forked 25296 +(25295) found +(25296) found +[13192] Forked 25297 +[13191] Forked 25298 +(25297) found +(25298) found +[13190] Forked 25299 +[13189] Forked 25300 +(25299) found +(25300) found +[13188] Forked 25301 +[13187] Forked 25302 +(25301) found +(25302) found +[13186] Forked 25303 +[13185] Forked 25304 +(25303) found +(25304) found +[13184] Forked 25305 +[13183] Forked 25306 +(25305) found +(25306) found +[13182] Forked 25307 +[13181] Forked 25308 +(25307) found +(25308) found +[13180] Forked 25309 +[13179] Forked 25310 +(25309) found +(25310) found +[13178] Forked 25311 +[13177] Forked 25312 +(25311) found +(25312) found +[13176] Forked 25313 +[13175] Forked 25314 +(25313) found +(25314) found +[13174] Forked 25315 +[13173] Forked 25316 +(25315) found +(25316) found +[13172] Forked 25317 +[13171] Forked 25318 +(25317) found +(25318) found +[13170] Forked 25319 +[13169] Forked 25320 +(25319) found +(25320) found +[13168] Forked 25321 +[13167] Forked 25322 +(25321) found +(25322) found +[13166] Forked 25323 +[13165] Forked 25324 +(25323) found +(25324) found +[13164] Forked 25325 +[13163] Forked 25326 +(25325) found +(25326) found +[13162] Forked 25327 +[13161] Forked 25328 +(25327) found +(25328) found +[13160] Forked 25329 +[13159] Forked 25330 +(25329) found +(25330) found +[13158] Forked 25331 +[13157] Forked 25332 +(25331) found +(25332) found +[13156] Forked 25333 +(25333) found +[13155] Forked 25334 +[13154] Forked 25335 +(25334) found +(25335) found +[13153] Forked 25336 +[13152] Forked 25337 +(25336) found +(25337) found +[13151] Forked 25338 +[13150] Forked 25339 +(25338) found +(25339) found +[13149] Forked 25340 +[13148] Forked 25341 +(25340) found +(25341) found +[13147] Forked 25342 +[13146] Forked 25343 +(25342) found +(25343) found +[13145] Forked 25344 +[13144] Forked 25345 +(25344) found +(25345) found +[13143] Forked 25346 +[13142] Forked 25347 +(25346) found +(25347) found +[13141] Forked 25348 +[13140] Forked 25349 +(25348) found +(25349) found +[13139] Forked 25350 +[13138] Forked 25351 +(25350) found +(25351) found +[13137] Forked 25352 +[13136] Forked 25353 +(25352) found +(25353) found +[13135] Forked 25354 +[13134] Forked 25355 +(25354) found +(25355) found +[13133] Forked 25356 +[13132] Forked 25357 +(25356) found +(25357) found +[13131] Forked 25358 +[13130] Forked 25359 +(25358) found +(25359) found +[13129] Forked 25360 +[13128] Forked 25361 +(25360) found +(25361) found +[13127] Forked 25362 +[13126] Forked 25363 +(25362) found +(25363) found +[13125] Forked 25364 +[13124] Forked 25365 +(25364) found +(25365) found +[13123] Forked 25366 +[13122] Forked 25367 +(25366) found +(25367) found +[13121] Forked 25368 +[13120] Forked 25369 +(25368) found +(25369) found +[13119] Forked 25370 +[13118] Forked 25371 +(25370) found +(25371) found +[13117] Forked 25372 +[13116] Forked 25373 +(25372) found +(25373) found +[13115] Forked 25374 +[13114] Forked 25375 +(25374) found +(25375) found +[13113] Forked 25376 +[13112] Forked 25377 +(25376) found +(25377) found +[13111] Forked 25378 +[13110] Forked 25379 +(25378) found +(25379) found +[13109] Forked 25380 +[13108] Forked 25381 +(25380) found +(25381) found +[13107] Forked 25382 +[13106] Forked 25383 +(25382) found +(25383) found +[13105] Forked 25384 +[13104] Forked 25385 +(25384) found +(25385) found +[13103] Forked 25386 +[13102] Forked 25387 +(25386) found +(25387) found +[13101] Forked 25388 +[13100] Forked 25389 +(25388) found +(25389) found +[13099] Forked 25390 +[13098] Forked 25391 +(25390) found +(25391) found +[13097] Forked 25392 +[13096] Forked 25393 +(25392) found +(25393) found +[13095] Forked 25394 +[13094] Forked 25396 +(25394) found +(25396) found +[13093] Forked 25397 +(25397) found +[13092] Forked 25398 +(25398) found +[13091] Forked 25399 +(25399) found +[13090] Forked 25400 +(25400) found +[13089] Forked 25401 +(25401) found +[13088] Forked 25402 +(25402) found +[13087] Forked 25403 +(25403) found +[13086] Forked 25404 +(25404) found +[13085] Forked 25405 +(25405) found +[13084] Forked 25406 +(25406) found +[13083] Forked 25407 +(25407) found +[13082] Forked 25408 +(25408) found +[13081] Forked 25409 +(25409) found +[13080] Forked 25410 +(25410) found +[13079] Forked 25411 +(25411) found +[13078] Forked 25412 +(25412) found +[13077] Forked 25413 +(25413) found +[13076] Forked 25414 +(25414) found +[13075] Forked 25416 +(25416) found +[13074] Forked 25417 +(25417) found +[13073] Forked 25418 +(25418) found +[13072] Forked 25419 +(25419) found +[13071] Forked 25420 +(25420) found +[13070] Forked 25421 +(25421) found +[13069] Forked 25422 +(25422) found +[13068] Forked 25423 +(25423) found +[13067] Forked 25424 +(25424) found +[13066] Forked 25426 +(25426) found +[13065] Forked 25428 +(25428) found +[13064] Forked 25430 +(25430) found +[13063] Forked 25431 +(25431) found +[13062] Forked 25432 +(25432) found +[13061] Forked 25433 +(25433) found +[13060] Forked 25434 +(25434) found +[13059] Forked 25435 +(25435) found +[13058] Forked 25436 +(25436) found +[13057] Forked 25437 +(25437) found +[13056] Forked 25438 +(25438) found +[13055] Forked 25439 +(25439) found +[13054] Forked 25440 +(25440) found +[13053] Forked 25441 +(25441) found +[13052] Forked 25442 +(25442) found +[13051] Forked 25443 +(25443) found +[13050] Forked 25444 +(25444) found +[13049] Forked 25445 +(25445) found +[13048] Forked 25446 +(25446) found +[13047] Forked 25447 +(25447) found +[13046] Forked 25448 +(25448) found +[13045] Forked 25449 +(25449) found +[13044] Forked 25450 +(25450) found +[13043] Forked 25451 +(25451) found +[13042] Forked 25452 +(25452) found +[13041] Forked 25453 +(25453) found +[13040] Forked 25454 +(25454) found +[13039] Forked 25455 +(25455) found +[13038] Forked 25456 +(25456) found +[13037] Forked 25457 +(25457) found +[13036] Forked 25458 +(25458) found +[13035] Forked 25459 +(25459) found +[13034] Forked 25460 +(25460) found +[13033] Forked 25461 +[13032] Forked 25462 +(25461) found +(25462) found +[13031] Forked 25463 +[13030] Forked 25464 +(25463) found +(25464) found +[13029] Forked 25465 +[13028] Forked 25466 +(25465) found +(25466) found +[13027] Forked 25467 +[13026] Forked 25468 +(25467) found +(25468) found +[13025] Forked 25469 +[13024] Forked 25470 +(25469) found +(25470) found +[13023] Forked 25471 +[13022] Forked 25472 +(25471) found +(25472) found +[13021] Forked 25473 +[13020] Forked 25474 +(25473) found +(25474) found +[13019] Forked 25475 +[13018] Forked 25476 +(25475) found +(25476) found +[13017] Forked 25477 +[13016] Forked 25478 +(25477) found +(25478) found +[13015] Forked 25479 +[13014] Forked 25480 +(25479) found +(25480) found +[13013] Forked 25481 +[13012] Forked 25482 +(25481) found +(25482) found +[13011] Forked 25483 +[13010] Forked 25484 +(25483) found +(25484) found +[13009] Forked 25485 +[13008] Forked 25486 +(25485) found +(25486) found +[13007] Forked 25487 +[13006] Forked 25488 +(25487) found +(25488) found +[13005] Forked 25489 +[13004] Forked 25490 +(25489) found +(25490) found +[13003] Forked 25491 +[13002] Forked 25492 +(25491) found +(25492) found +[13001] Forked 25493 +[13000] Forked 25494 +(25493) found +(25494) found +[12999] Forked 25495 +[12998] Forked 25496 +(25495) found +(25496) found +[12997] Forked 25497 +[12996] Forked 25498 +(25497) found +(25498) found +[12995] Forked 25499 +[12994] Forked 25500 +(25499) found +(25500) found +[12993] Forked 25501 +[12992] Forked 25502 +(25501) found +(25502) found +[12991] Forked 25503 +[12990] Forked 25504 +(25503) found +(25504) found +[12989] Forked 25505 +[12988] Forked 25506 +(25505) found +(25506) found +[12987] Forked 25507 +[12986] Forked 25508 +(25507) found +(25508) found +[12985] Forked 25509 +[12984] Forked 25510 +(25509) found +(25510) found +[12983] Forked 25511 +[12982] Forked 25512 +(25511) found +(25512) found +[12981] Forked 25513 +[12980] Forked 25514 +(25513) found +(25514) found +[12979] Forked 25515 +[12978] Forked 25516 +(25515) found +(25516) found +[12977] Forked 25517 +[12976] Forked 25518 +(25517) found +(25518) found +[12975] Forked 25519 +[12974] Forked 25520 +(25519) found +(25520) found +[12973] Forked 25521 +[12972] Forked 25522 +(25521) found +(25522) found +[12971] Forked 25523 +[12970] Forked 25524 +(25523) found +(25524) found +[12969] Forked 25525 +[12968] Forked 25526 +(25525) found +(25526) found +[12967] Forked 25527 +[12966] Forked 25528 +(25527) found +(25528) found +[12965] Forked 25529 +[12964] Forked 25530 +(25529) found +(25530) found +[12963] Forked 25531 +[12962] Forked 25532 +(25531) found +(25532) found +[12961] Forked 25533 +[12960] Forked 25534 +(25533) found +(25534) found +[12959] Forked 25535 +[12958] Forked 25536 +(25535) found +(25536) found +[12957] Forked 25537 +[12956] Forked 25538 +(25537) found +(25538) found +[12955] Forked 25539 +[12954] Forked 25540 +(25539) found +(25540) found +[12953] Forked 25541 +[12952] Forked 25542 +(25541) found +(25542) found +[12951] Forked 25543 +[12950] Forked 25544 +(25543) found +(25544) found +[12949] Forked 25545 +[12948] Forked 25546 +(25545) found +(25546) found +[12947] Forked 25547 +[12946] Forked 25548 +(25547) found +(25548) found +[12945] Forked 25549 +[12944] Forked 25550 +(25549) found +(25550) found +[12943] Forked 25551 +[12942] Forked 25552 +(25551) found +(25552) found +[12941] Forked 25553 +[12940] Forked 25554 +(25553) found +(25554) found +[12939] Forked 25555 +[12938] Forked 25556 +(25555) found +(25556) found +[12937] Forked 25557 +[12936] Forked 25558 +(25557) found +(25558) found +[12935] Forked 25559 +[12934] Forked 25560 +(25559) found +(25560) found +[12933] Forked 25561 +[12932] Forked 25562 +(25561) found +(25562) found +[12931] Forked 25563 +[12930] Forked 25564 +(25563) found +(25564) found +[12929] Forked 25565 +[12928] Forked 25566 +(25565) found +(25566) found +[12927] Forked 25567 +[12926] Forked 25568 +(25567) found +(25568) found +[12925] Forked 25569 +[12924] Forked 25570 +(25569) found +(25570) found +[12923] Forked 25571 +[12922] Forked 25572 +(25571) found +(25572) found +[12921] Forked 25573 +[12920] Forked 25574 +(25573) found +(25574) found +[12919] Forked 25575 +[12918] Forked 25576 +(25575) found +(25576) found +[12917] Forked 25577 +[12916] Forked 25578 +(25577) found +(25578) found +[12915] Forked 25579 +[12914] Forked 25580 +(25579) found +(25580) found +[12913] Forked 25581 +[12912] Forked 25582 +(25581) found +(25582) found +[12911] Forked 25583 +[12910] Forked 25584 +(25583) found +(25584) found +[12909] Forked 25585 +[12908] Forked 25586 +(25585) found +(25586) found +[12907] Forked 25587 +[12906] Forked 25588 +(25587) found +(25588) found +[12905] Forked 25589 +[12904] Forked 25590 +(25589) found +(25590) found +[12903] Forked 25591 +[12902] Forked 25592 +(25591) found +(25592) found +[12901] Forked 25593 +[12900] Forked 25595 +(25593) found +(25595) found +[12899] Forked 25596 +[12898] Forked 25597 +(25596) found +(25597) found +[12897] Forked 25598 +[12896] Forked 25599 +(25599) found +(25598) found +[12895] Forked 25600 +(25600) found +[12894] Forked 25601 +[12893] Forked 25602 +(25601) found +(25602) found +[12892] Forked 25603 +[12891] Forked 25604 +(25603) found +(25604) found +[12890] Forked 25605 +[12889] Forked 25606 +(25605) found +(25606) found +[12888] Forked 25607 +[12887] Forked 25608 +(25607) found +(25608) found +[12886] Forked 25609 +[12885] Forked 25610 +(25609) found +(25610) found +[12884] Forked 25611 +[12883] Forked 25612 +(25611) found +(25612) found +[12882] Forked 25613 +[12881] Forked 25614 +(25613) found +(25614) found +[12880] Forked 25615 +[12879] Forked 25616 +(25615) found +(25616) found +[12878] Forked 25617 +[12877] Forked 25618 +(25617) found +(25618) found +[12876] Forked 25619 +[12875] Forked 25620 +(25619) found +(25620) found +[12874] Forked 25621 +[12873] Forked 25622 +(25621) found +(25622) found +[12872] Forked 25623 +[12871] Forked 25624 +(25623) found +(25624) found +[12870] Forked 25625 +(25625) found +[12869] Forked 25626 +[12868] Forked 25627 +(25626) found +(25627) found +[12867] Forked 25628 +[12866] Forked 25629 +(25628) found +(25629) found +[12865] Forked 25630 +[12864] Forked 25631 +(25630) found +(25631) found +[12863] Forked 25632 +[12862] Forked 25633 +(25632) found +(25633) found +[12861] Forked 25634 +[12860] Forked 25635 +(25634) found +(25635) found +[12859] Forked 25636 +[12858] Forked 25637 +(25636) found +(25637) found +[12857] Forked 25638 +[12856] Forked 25639 +(25638) found +(25639) found +[12855] Forked 25640 +[12854] Forked 25641 +(25640) found +(25641) found +[12853] Forked 25642 +[12852] Forked 25643 +(25642) found +(25643) found +[12851] Forked 25644 +[12850] Forked 25645 +(25644) found +(25645) found +[12849] Forked 25646 +[12848] Forked 25647 +(25646) found +(25647) found +[12847] Forked 25648 +[12846] Forked 25649 +(25648) found +(25649) found +[12845] Forked 25650 +[12844] Forked 25651 +(25650) found +(25651) found +[12843] Forked 25652 +[12842] Forked 25653 +(25652) found +(25653) found +[12841] Forked 25654 +[12840] Forked 25655 +(25654) found +(25655) found +[12839] Forked 25656 +[12838] Forked 25657 +(25656) found +(25657) found +[12837] Forked 25658 +[12836] Forked 25659 +(25658) found +(25659) found +[12835] Forked 25660 +[12834] Forked 25661 +(25660) found +(25661) found +[12833] Forked 25662 +[12832] Forked 25663 +(25662) found +(25663) found +[12831] Forked 25664 +[12830] Forked 25665 +(25664) found +(25665) found +[12829] Forked 25666 +[12828] Forked 25667 +(25666) found +(25667) found +[12827] Forked 25668 +[12826] Forked 25669 +(25668) found +(25669) found +[12825] Forked 25670 +[12824] Forked 25671 +(25670) found +(25671) found +[12823] Forked 25672 +[12822] Forked 25673 +(25672) found +(25673) found +[12821] Forked 25674 +[12820] Forked 25675 +(25674) found +(25675) found +[12819] Forked 25676 +[12818] Forked 25677 +(25676) found +(25677) found +[12817] Forked 25678 +[12816] Forked 25679 +(25678) found +(25679) found +[12815] Forked 25680 +[12814] Forked 25681 +(25680) found +(25681) found +[12813] Forked 25682 +[12812] Forked 25683 +(25682) found +(25683) found +[12811] Forked 25684 +[12810] Forked 25685 +(25684) found +(25685) found +[12809] Forked 25686 +[12808] Forked 25687 +(25686) found +(25687) found +[12807] Forked 25688 +[12806] Forked 25689 +(25688) found +(25689) found +[12805] Forked 25690 +[12804] Forked 25691 +(25690) found +(25691) found +[12803] Forked 25692 +[12802] Forked 25693 +(25692) found +(25693) found +[12801] Forked 25694 +[12800] Forked 25695 +(25694) found +(25695) found +[12799] Forked 25696 +[12798] Forked 25697 +(25696) found +(25697) found +[12797] Forked 25698 +[12796] Forked 25699 +(25698) found +(25699) found +[12795] Forked 25700 +[12794] Forked 25701 +(25700) found +(25701) found +[12793] Forked 25702 +[12792] Forked 25703 +(25702) found +(25703) found +[12791] Forked 25704 +[12790] Forked 25705 +(25704) found +(25705) found +[12789] Forked 25706 +[12788] Forked 25707 +(25706) found +(25707) found +[12787] Forked 25708 +[12786] Forked 25709 +(25708) found +(25709) found +[12785] Forked 25710 +[12784] Forked 25711 +(25710) found +(25711) found +[12783] Forked 25712 +[12782] Forked 25713 +(25712) found +(25713) found +[12781] Forked 25714 +[12780] Forked 25715 +(25714) found +(25715) found +[12779] Forked 25716 +[12778] Forked 25717 +(25716) found +(25717) found +[12777] Forked 25718 +[12776] Forked 25719 +(25718) found +(25719) found +[12775] Forked 25720 +[12774] Forked 25721 +(25720) found +(25721) found +[12773] Forked 25722 +[12772] Forked 25723 +(25722) found +(25723) found +[12771] Forked 25724 +[12770] Forked 25725 +(25724) found +(25725) found +[12769] Forked 25726 +[12768] Forked 25727 +(25727) found +(25726) found +[12767] Forked 25728 +(25728) found +[12766] Forked 25729 +(25729) found +[12765] Forked 25730 +(25730) found +[12764] Forked 25731 +(25731) found +[12763] Forked 25732 +(25732) found +[12762] Forked 25733 +(25733) found +[12761] Forked 25734 +(25734) found +[12760] Forked 25735 +(25735) found +[12759] Forked 25736 +(25736) found +[12758] Forked 25737 +(25737) found +[12757] Forked 25738 +(25738) found +[12756] Forked 25739 +(25739) found +[12755] Forked 25740 +(25740) found +[12754] Forked 25741 +(25741) found +[12753] Forked 25742 +(25742) found +[12752] Forked 25743 +(25743) found +[12751] Forked 25744 +(25744) found +[12750] Forked 25745 +(25745) found +[12749] Forked 25746 +(25746) found +[12748] Forked 25747 +(25747) found +[12747] Forked 25748 +(25748) found +[12746] Forked 25749 +(25749) found +[12745] Forked 25750 +(25750) found +[12744] Forked 25751 +(25751) found +[12743] Forked 25752 +(25752) found +[12742] Forked 25753 +(25753) found +[12741] Forked 25754 +(25754) found +[12740] Forked 25755 +(25755) found +[12739] Forked 25756 +(25756) found +[12738] Forked 25757 +(25757) found +[12737] Forked 25758 +(25758) found +[12736] Forked 25759 +(25759) found +[12735] Forked 25760 +(25760) found +[12734] Forked 25761 +(25761) found +[12733] Forked 25762 +(25762) found +[12732] Forked 25763 +(25763) found +[12731] Forked 25764 +(25764) found +[12730] Forked 25765 +(25765) found +[12729] Forked 25766 +(25766) found +[12728] Forked 25767 +(25767) found +[12727] Forked 25768 +(25768) found +[12726] Forked 25769 +(25769) found +[12725] Forked 25770 +(25770) found +[12724] Forked 25771 +(25771) found +[12723] Forked 25772 +(25772) found +[12722] Forked 25774 +(25774) found +[12721] Forked 25775 +(25775) found +[12720] Forked 25776 +(25776) found +[12719] Forked 25777 +(25777) found +[12718] Forked 25778 +(25778) found +[12717] Forked 25779 +(25779) found +[12716] Forked 25780 +(25780) found +[12715] Forked 25781 +(25781) found +[12714] Forked 25782 +(25782) found +[12713] Forked 25783 +(25783) found +[12712] Forked 25784 +(25784) found +[12711] Forked 25785 +(25785) found +[12710] Forked 25786 +(25786) found +[12709] Forked 25787 +(25787) found +[12708] Forked 25788 +(25788) found +[12707] Forked 25789 +(25789) found +[12706] Forked 25790 +(25790) found +[12705] Forked 25791 +(25791) found +[12704] Forked 25792 +(25792) found +[12703] Forked 25793 +(25793) found +[12702] Forked 25794 +(25794) found +[12701] Forked 25795 +(25795) found +[12700] Forked 25796 +[12699] Forked 25797 +(25796) found +(25797) found +[12698] Forked 25798 +[12697] Forked 25799 +(25798) found +(25799) found +[12696] Forked 25800 +[12695] Forked 25801 +(25800) found +(25801) found +[12694] Forked 25802 +[12693] Forked 25803 +(25802) found +(25803) found +[12692] Forked 25804 +[12691] Forked 25805 +(25804) found +(25805) found +[12690] Forked 25806 +[12689] Forked 25807 +(25806) found +(25807) found +[12688] Forked 25808 +[12687] Forked 25809 +(25808) found +(25809) found +[12686] Forked 25810 +[12685] Forked 25811 +(25810) found +(25811) found +[12684] Forked 25812 +[12683] Forked 25813 +(25812) found +(25813) found +[12682] Forked 25814 +[12681] Forked 25815 +(25814) found +(25815) found +[12680] Forked 25816 +[12679] Forked 25817 +(25816) found +(25817) found +[12678] Forked 25818 +[12677] Forked 25819 +(25818) found +(25819) found +[12676] Forked 25820 +[12675] Forked 25821 +(25820) found +(25821) found +[12674] Forked 25822 +[12673] Forked 25823 +(25822) found +(25823) found +[12672] Forked 25824 +[12671] Forked 25825 +(25824) found +(25825) found +[12670] Forked 25826 +[12669] Forked 25827 +(25826) found +(25827) found +[12668] Forked 25828 +[12667] Forked 25829 +(25828) found +(25829) found +[12666] Forked 25830 +[12665] Forked 25831 +(25830) found +(25831) found +[12664] Forked 25832 +[12663] Forked 25833 +(25832) found +(25833) found +[12662] Forked 25834 +[12661] Forked 25835 +(25834) found +(25835) found +[12660] Forked 25836 +[12659] Forked 25837 +(25836) found +(25837) found +[12658] Forked 25838 +[12657] Forked 25839 +(25838) found +(25839) found +[12656] Forked 25840 +[12655] Forked 25841 +(25840) found +(25841) found +[12654] Forked 25842 +[12653] Forked 25843 +(25842) found +(25843) found +[12652] Forked 25844 +[12651] Forked 25845 +(25844) found +(25845) found +[12650] Forked 25846 +[12649] Forked 25847 +(25846) found +(25847) found +[12648] Forked 25848 +[12647] Forked 25849 +(25848) found +(25849) found +[12646] Forked 25850 +[12645] Forked 25851 +(25850) found +(25851) found +[12644] Forked 25852 +[12643] Forked 25853 +(25852) found +(25853) found +[12642] Forked 25854 +[12641] Forked 25855 +(25854) found +(25855) found +[12640] Forked 25856 +[12639] Forked 25857 +(25856) found +(25857) found +[12638] Forked 25858 +[12637] Forked 25859 +(25858) found +(25859) found +[12636] Forked 25860 +[12635] Forked 25861 +(25860) found +(25861) found +[12634] Forked 25862 +[12633] Forked 25863 +(25862) found +(25863) found +[12632] Forked 25864 +[12631] Forked 25865 +(25864) found +(25865) found +[12630] Forked 25866 +[12629] Forked 25867 +(25866) found +(25867) found +[12628] Forked 25868 +[12627] Forked 25869 +(25868) found +(25869) found +[12626] Forked 25870 +[12625] Forked 25871 +(25870) found +(25871) found +[12624] Forked 25872 +[12623] Forked 25873 +(25872) found +(25873) found +[12622] Forked 25874 +[12621] Forked 25875 +(25874) found +(25875) found +[12620] Forked 25876 +[12619] Forked 25877 +(25876) found +(25877) found +[12618] Forked 25878 +[12617] Forked 25879 +(25878) found +(25879) found +[12616] Forked 25880 +[12615] Forked 25881 +(25880) found +(25881) found +[12614] Forked 25882 +[12613] Forked 25883 +(25882) found +(25883) found +[12612] Forked 25884 +[12611] Forked 25885 +(25884) found +(25885) found +[12610] Forked 25886 +[12609] Forked 25887 +(25886) found +(25887) found +[12608] Forked 25888 +[12607] Forked 25889 +(25888) found +(25889) found +[12606] Forked 25890 +[12605] Forked 25891 +(25890) found +(25891) found +[12604] Forked 25892 +[12603] Forked 25893 +(25892) found +(25893) found +[12602] Forked 25894 +[12601] Forked 25895 +(25894) found +(25895) found +[12600] Forked 25896 +[12599] Forked 25897 +(25896) found +(25897) found +[12598] Forked 25898 +[12597] Forked 25899 +(25898) found +(25899) found +[12596] Forked 25900 +[12595] Forked 25901 +(25900) found +(25901) found +[12594] Forked 25902 +[12593] Forked 25903 +(25902) found +(25903) found +[12592] Forked 25904 +[12591] Forked 25905 +(25904) found +(25905) found +[12590] Forked 25906 +[12589] Forked 25907 +(25906) found +(25907) found +[12588] Forked 25908 +[12587] Forked 25909 +(25908) found +(25909) found +[12586] Forked 25910 +[12585] Forked 25911 +(25910) found +(25911) found +[12584] Forked 25912 +[12583] Forked 25913 +(25912) found +(25913) found +[12582] Forked 25914 +[12581] Forked 25915 +(25914) found +(25915) found +[12580] Forked 25916 +[12579] Forked 25917 +(25916) found +(25917) found +[12578] Forked 25918 +[12577] Forked 25919 +(25918) found +(25919) found +[12576] Forked 25920 +[12575] Forked 25921 +(25920) found +(25921) found +[12574] Forked 25922 +[12573] Forked 25923 +(25922) found +(25923) found +[12572] Forked 25924 +[12571] Forked 25925 +(25924) found +(25925) found +[12570] Forked 25926 +[12569] Forked 25927 +(25926) found +(25927) found +[12568] Forked 25928 +[12567] Forked 25929 +(25928) found +(25929) found +[12566] Forked 25930 +[12565] Forked 25931 +(25930) found +(25931) found +[12564] Forked 25932 +[12563] Forked 25933 +(25932) found +(25933) found +[12562] Forked 25934 +(25934) found +[12561] Forked 25935 +(25935) found +[12560] Forked 25936 +(25936) found +[12559] Forked 25937 +(25937) found +[12558] Forked 25938 +(25938) found +[12557] Forked 25939 +(25939) found +[12556] Forked 25940 +(25940) found +[12555] Forked 25941 +(25941) found +[12554] Forked 25942 +(25942) found +[12553] Forked 25943 +(25943) found +[12552] Forked 25944 +(25944) found +[12551] Forked 25945 +(25945) found +[12550] Forked 25946 +(25946) found +[12549] Forked 25947 +(25947) found +[12548] Forked 25948 +(25948) found +[12547] Forked 25949 +(25949) found +[12546] Forked 25950 +(25950) found +[12545] Forked 25951 +(25951) found +[12544] Forked 25952 +(25952) found +[12543] Forked 25953 +(25953) found +[12542] Forked 25954 +(25954) found +[12541] Forked 25955 +(25955) found +[12540] Forked 25956 +(25956) found +[12539] Forked 25957 +(25957) found +[12538] Forked 25958 +(25958) found +[12537] Forked 25959 +(25959) found +[12536] Forked 25960 +(25960) found +[12535] Forked 25961 +(25961) found +[12534] Forked 25962 +(25962) found +[12533] Forked 25963 +(25963) found +[12532] Forked 25964 +(25964) found +[12531] Forked 25965 +(25965) found +[12530] Forked 25966 +(25966) found +[12529] Forked 25967 +(25967) found +[12528] Forked 25968 +(25968) found +[12527] Forked 25969 +[12526] Forked 25970 +(25969) found +(25970) found +[12525] Forked 25971 +[12524] Forked 25972 +(25971) found +(25972) found +[12523] Forked 25973 +[12522] Forked 25974 +(25973) found +(25974) found +[12521] Forked 25975 +[12520] Forked 25976 +(25975) found +(25976) found +[12519] Forked 25977 +[12518] Forked 25978 +(25977) found +(25978) found +[12517] Forked 25979 +[12516] Forked 25980 +(25979) found +(25980) found +[12515] Forked 25981 +[12514] Forked 25982 +(25981) found +(25982) found +[12513] Forked 25983 +[12512] Forked 25984 +(25983) found +(25984) found +[12511] Forked 25985 +[12510] Forked 25986 +(25985) found +(25986) found +[12509] Forked 25987 +[12508] Forked 25988 +(25987) found +(25988) found +[12507] Forked 25989 +[12506] Forked 25990 +(25989) found +(25990) found +[12505] Forked 25991 +[12504] Forked 25992 +(25991) found +(25992) found +[12503] Forked 25993 +[12502] Forked 25994 +(25993) found +(25994) found +[12501] Forked 25995 +[12500] Forked 25996 +(25995) found +(25996) found +[12499] Forked 25997 +[12498] Forked 25998 +(25997) found +(25998) found +[12497] Forked 25999 +[12496] Forked 26000 +(25999) found +(26000) found +[12495] Forked 26001 +[12494] Forked 26002 +(26001) found +(26002) found +[12493] Forked 26003 +[12492] Forked 26004 +(26003) found +(26004) found +[12491] Forked 26005 +[12490] Forked 26006 +(26005) found +(26006) found +[12489] Forked 26007 +[12488] Forked 26008 +(26007) found +(26008) found +[12487] Forked 26009 +[12486] Forked 26010 +(26009) found +(26010) found +[12485] Forked 26011 +[12484] Forked 26012 +(26011) found +(26012) found +[12483] Forked 26013 +[12482] Forked 26014 +(26013) found +(26014) found +[12481] Forked 26015 +(26015) found +[12480] Forked 26016 +(26016) found +[12479] Forked 26017 +(26017) found +[12478] Forked 26018 +(26018) found +[12477] Forked 26019 +(26019) found +[12476] Forked 26020 +(26020) found +[12475] Forked 26021 +(26021) found +[12474] Forked 26022 +(26022) found +[12473] Forked 26023 +(26023) found +[12472] Forked 26024 +(26024) found +[12471] Forked 26025 +(26025) found +[12470] Forked 26026 +(26026) found +[12469] Forked 26027 +(26027) found +[12468] Forked 26028 +(26028) found +[12467] Forked 26029 +(26029) found +[12466] Forked 26030 +(26030) found +[12465] Forked 26031 +(26031) found +[12464] Forked 26032 +(26032) found +[12463] Forked 26033 +(26033) found +[12462] Forked 26034 +(26034) found +[12461] Forked 26035 +(26035) found +[12460] Forked 26036 +(26036) found +[12459] Forked 26037 +(26037) found +[12458] Forked 26038 +(26038) found +[12457] Forked 26039 +(26039) found +[12456] Forked 26040 +(26040) found +[12455] Forked 26041 +(26041) found +[12454] Forked 26042 +(26042) found +[12453] Forked 26043 +(26043) found +[12452] Forked 26044 +(26044) found +[12451] Forked 26045 +(26045) found +[12450] Forked 26046 +(26046) found +[12449] Forked 26047 +(26047) found +[12448] Forked 26048 +(26048) found +[12447] Forked 26049 +(26049) found +[12446] Forked 26050 +[12445] Forked 26051 +(26050) found +(26051) found +[12444] Forked 26052 +[12443] Forked 26053 +(26052) found +(26053) found +[12442] Forked 26054 +[12441] Forked 26055 +(26054) found +(26055) found +[12440] Forked 26056 +[12439] Forked 26057 +(26056) found +(26057) found +[12438] Forked 26058 +[12437] Forked 26059 +(26058) found +(26059) found +[12436] Forked 26060 +[12435] Forked 26061 +(26060) found +(26061) found +[12434] Forked 26062 +[12433] Forked 26063 +(26062) found +(26063) found +[12432] Forked 26064 +[12431] Forked 26065 +(26064) found +(26065) found +[12430] Forked 26066 +[12429] Forked 26067 +(26066) found +(26067) found +[12428] Forked 26068 +[12427] Forked 26069 +(26068) found +(26069) found +[12426] Forked 26070 +[12425] Forked 26071 +(26070) found +(26071) found +[12424] Forked 26072 +[12423] Forked 26073 +(26072) found +(26073) found +[12422] Forked 26074 +[12421] Forked 26075 +(26074) found +(26075) found +[12420] Forked 26076 +[12419] Forked 26077 +(26076) found +(26077) found +[12418] Forked 26078 +[12417] Forked 26079 +(26078) found +(26079) found +[12416] Forked 26080 +[12415] Forked 26081 +(26080) found +(26081) found +[12414] Forked 26082 +[12413] Forked 26083 +(26082) found +(26083) found +[12412] Forked 26084 +[12411] Forked 26085 +(26084) found +(26085) found +[12410] Forked 26086 +[12409] Forked 26087 +(26086) found +(26087) found +[12408] Forked 26088 +[12407] Forked 26089 +(26088) found +(26089) found +[12406] Forked 26090 +[12405] Forked 26091 +(26090) found +(26091) found +[12404] Forked 26092 +[12403] Forked 26093 +(26092) found +(26093) found +[12402] Forked 26094 +[12401] Forked 26095 +(26094) found +(26095) found +[12400] Forked 26096 +[12399] Forked 26097 +(26096) found +(26097) found +[12398] Forked 26098 +[12397] Forked 26099 +(26098) found +(26099) found +[12396] Forked 26100 +[12395] Forked 26101 +(26100) found +(26101) found +[12394] Forked 26102 +[12393] Forked 26103 +(26102) found +(26103) found +[12392] Forked 26104 +[12391] Forked 26105 +(26104) found +(26105) found +[12390] Forked 26106 +[12389] Forked 26107 +(26106) found +(26107) found +[12388] Forked 26108 +[12387] Forked 26109 +(26108) found +(26109) found +[12386] Forked 26110 +[12385] Forked 26111 +(26110) found +(26111) found +[12384] Forked 26112 +[12383] Forked 26113 +(26112) found +(26113) found +[12382] Forked 26114 +[12381] Forked 26115 +(26114) found +(26115) found +[12380] Forked 26116 +[12379] Forked 26117 +(26116) found +(26117) found +[12378] Forked 26118 +[12377] Forked 26119 +(26118) found +(26119) found +[12376] Forked 26120 +[12375] Forked 26121 +(26120) found +(26121) found +[12374] Forked 26122 +[12373] Forked 26123 +(26122) found +(26123) found +[12372] Forked 26124 +[12371] Forked 26125 +(26124) found +(26125) found +[12370] Forked 26126 +[12369] Forked 26127 +(26126) found +(26127) found +[12368] Forked 26128 +[12367] Forked 26129 +(26128) found +(26129) found +[12366] Forked 26130 +[12365] Forked 26131 +(26130) found +(26131) found +[12364] Forked 26132 +[12363] Forked 26133 +(26132) found +(26133) found +[12362] Forked 26134 +[12361] Forked 26135 +(26134) found +(26135) found +[12360] Forked 26136 +[12359] Forked 26137 +(26136) found +(26137) found +[12358] Forked 26138 +[12357] Forked 26139 +(26138) found +(26139) found +[12356] Forked 26140 +[12355] Forked 26141 +(26140) found +(26141) found +[12354] Forked 26142 +[12353] Forked 26143 +(26142) found +(26143) found +[12352] Forked 26144 +[12351] Forked 26145 +(26144) found +(26145) found +[12350] Forked 26146 +[12349] Forked 26147 +(26146) found +(26147) found +[12348] Forked 26148 +[12347] Forked 26149 +(26148) found +(26149) found +[12346] Forked 26150 +[12345] Forked 26151 +(26150) found +(26151) found +[12344] Forked 26152 +[12343] Forked 26153 +(26152) found +(26153) found +[12342] Forked 26154 +[12341] Forked 26155 +(26154) found +(26155) found +[12340] Forked 26156 +[12339] Forked 26157 +(26156) found +(26157) found +[12338] Forked 26158 +[12337] Forked 26159 +(26158) found +(26159) found +[12336] Forked 26160 +[12335] Forked 26161 +(26160) found +(26161) found +[12334] Forked 26162 +[12333] Forked 26163 +(26162) found +(26163) found +[12332] Forked 26164 +[12331] Forked 26165 +(26164) found +(26165) found +[12330] Forked 26166 +[12329] Forked 26167 +(26166) found +(26167) found +[12328] Forked 26168 +[12327] Forked 26169 +(26168) found +(26169) found +[12326] Forked 26170 +[12325] Forked 26171 +(26170) found +(26171) found +[12324] Forked 26172 +[12323] Forked 26173 +(26172) found +(26173) found +[12322] Forked 26174 +[12321] Forked 26175 +(26174) found +(26175) found +[12320] Forked 26176 +[12319] Forked 26177 +(26176) found +(26177) found +[12318] Forked 26178 +[12317] Forked 26179 +(26178) found +(26179) found +[12316] Forked 26180 +[12315] Forked 26181 +(26180) found +(26181) found +[12314] Forked 26182 +(26182) found +[12313] Forked 26183 +[12312] Forked 26184 +(26183) found +(26184) found +[12311] Forked 26185 +[12310] Forked 26186 +(26185) found +(26186) found +[12309] Forked 26187 +[12308] Forked 26188 +(26187) found +(26188) found +[12307] Forked 26189 +[12306] Forked 26190 +(26189) found +(26190) found +[12305] Forked 26191 +[12304] Forked 26192 +(26191) found +(26192) found +[12303] Forked 26193 +[12302] Forked 26194 +(26193) found +(26194) found +[12301] Forked 26195 +[12300] Forked 26196 +(26195) found +(26196) found +[12299] Forked 26197 +[12298] Forked 26198 +(26197) found +(26198) found +[12297] Forked 26199 +[12296] Forked 26200 +(26199) found +(26200) found +[12295] Forked 26201 +[12294] Forked 26202 +(26201) found +(26202) found +[12293] Forked 26203 +[12292] Forked 26204 +(26203) found +(26204) found +[12291] Forked 26205 +[12290] Forked 26206 +(26205) found +(26206) found +[12289] Forked 26207 +[12288] Forked 26208 +(26207) found +(26208) found +[12287] Forked 26209 +[12286] Forked 26210 +(26209) found +(26210) found +[12285] Forked 26211 +[12284] Forked 26212 +(26211) found +(26212) found +[12283] Forked 26213 +[12282] Forked 26214 +(26213) found +(26214) found +[12281] Forked 26215 +[12280] Forked 26216 +(26215) found +(26216) found +[12279] Forked 26217 +[12278] Forked 26218 +(26217) found +(26218) found +[12277] Forked 26219 +[12276] Forked 26220 +(26219) found +(26220) found +[12275] Forked 26221 +[12274] Forked 26222 +(26221) found +(26222) found +[12273] Forked 26223 +[12272] Forked 26224 +(26223) found +(26224) found +[12271] Forked 26225 +[12270] Forked 26226 +(26225) found +(26226) found +[12269] Forked 26227 +[12268] Forked 26228 +(26227) found +(26228) found +[12267] Forked 26229 +[12266] Forked 26230 +(26229) found +(26230) found +[12265] Forked 26231 +[12264] Forked 26232 +(26231) found +(26232) found +[12263] Forked 26233 +[12262] Forked 26234 +(26233) found +(26234) found +[12261] Forked 26235 +[12260] Forked 26236 +(26235) found +(26236) found +[12259] Forked 26237 +[12258] Forked 26238 +(26237) found +(26238) found +[12257] Forked 26239 +[12256] Forked 26240 +(26239) found +(26240) found +[12255] Forked 26241 +[12254] Forked 26242 +(26241) found +(26242) found +[12253] Forked 26243 +[12252] Forked 26244 +(26243) found +(26244) found +[12251] Forked 26245 +[12250] Forked 26246 +(26245) found +(26246) found +[12249] Forked 26247 +[12248] Forked 26248 +(26247) found +(26248) found +[12247] Forked 26249 +[12246] Forked 26250 +(26249) found +(26250) found +[12245] Forked 26251 +[12244] Forked 26252 +(26251) found +(26252) found +[12243] Forked 26253 +[12242] Forked 26254 +(26253) found +(26254) found +[12241] Forked 26255 +[12240] Forked 26256 +(26255) found +(26256) found +[12239] Forked 26257 +[12238] Forked 26258 +(26257) found +(26258) found +[12237] Forked 26259 +[12236] Forked 26260 +(26259) found +(26260) found +[12235] Forked 26261 +[12234] Forked 26262 +(26261) found +(26262) found +[12233] Forked 26263 +[12232] Forked 26264 +(26263) found +(26264) found +[12231] Forked 26265 +[12230] Forked 26266 +(26265) found +(26266) found +[12229] Forked 26267 +[12228] Forked 26268 +(26267) found +(26268) found +[12227] Forked 26269 +[12226] Forked 26270 +(26269) found +(26270) found +[12225] Forked 26271 +[12224] Forked 26272 +(26271) found +(26272) found +[12223] Forked 26273 +[12222] Forked 26274 +(26273) found +(26274) found +[12221] Forked 26275 +[12220] Forked 26276 +(26275) found +(26276) found +[12219] Forked 26277 +[12218] Forked 26278 +(26277) found +(26278) found +[12217] Forked 26279 +[12216] Forked 26280 +(26279) found +(26280) found +[12215] Forked 26281 +[12214] Forked 26282 +(26281) found +(26282) found +[12213] Forked 26283 +[12212] Forked 26284 +(26283) found +(26284) found +[12211] Forked 26285 +[12210] Forked 26286 +(26285) found +(26286) found +[12209] Forked 26287 +[12208] Forked 26288 +(26287) found +(26288) found +[12207] Forked 26289 +[12206] Forked 26290 +(26289) found +(26290) found +[12205] Forked 26291 +[12204] Forked 26292 +(26291) found +(26292) found +[12203] Forked 26293 +[12202] Forked 26294 +(26293) found +(26294) found +[12201] Forked 26295 +[12200] Forked 26296 +(26295) found +(26296) found +[12199] Forked 26297 +[12198] Forked 26298 +(26297) found +(26298) found +[12197] Forked 26299 +[12196] Forked 26300 +(26299) found +(26300) found +[12195] Forked 26301 +[12194] Forked 26302 +(26301) found +(26302) found +[12193] Forked 26303 +[12192] Forked 26304 +(26303) found +(26304) found +[12191] Forked 26305 +[12190] Forked 26306 +(26305) found +(26306) found +[12189] Forked 26307 +[12188] Forked 26308 +(26307) found +(26308) found +[12187] Forked 26309 +[12186] Forked 26310 +(26309) found +(26310) found +[12185] Forked 26311 +[12184] Forked 26312 +(26311) found +(26312) found +[12183] Forked 26313 +[12182] Forked 26314 +(26313) found +(26314) found +[12181] Forked 26315 +[12180] Forked 26316 +(26315) found +(26316) found +[12179] Forked 26317 +[12178] Forked 26318 +(26317) found +(26318) found +[12177] Forked 26319 +[12176] Forked 26320 +(26319) found +(26320) found +[12175] Forked 26321 +[12174] Forked 26322 +(26321) found +(26322) found +[12173] Forked 26323 +[12172] Forked 26324 +(26323) found +(26324) found +[12171] Forked 26325 +[12170] Forked 26326 +(26325) found +(26326) found +[12169] Forked 26327 +[12168] Forked 26328 +(26327) found +(26328) found +[12167] Forked 26329 +[12166] Forked 26330 +(26329) found +(26330) found +[12165] Forked 26331 +[12164] Forked 26332 +(26331) found +(26332) found +[12163] Forked 26333 +[12162] Forked 26334 +(26333) found +(26334) found +[12161] Forked 26335 +[12160] Forked 26336 +(26335) found +(26336) found +[12159] Forked 26337 +[12158] Forked 26338 +(26337) found +(26338) found +[12157] Forked 26339 +[12156] Forked 26340 +(26339) found +(26340) found +[12155] Forked 26341 +[12154] Forked 26342 +(26341) found +(26342) found +[12153] Forked 26343 +[12152] Forked 26344 +(26343) found +(26344) found +[12151] Forked 26345 +[12150] Forked 26346 +(26345) found +(26346) found +[12149] Forked 26347 +[12148] Forked 26348 +(26347) found +(26348) found +[12147] Forked 26349 +[12146] Forked 26350 +(26349) found +(26350) found +[12145] Forked 26351 +[12144] Forked 26352 +(26351) found +(26352) found +[12143] Forked 26353 +[12142] Forked 26354 +(26353) found +(26354) found +[12141] Forked 26355 +[12140] Forked 26356 +(26355) found +(26356) found +[12139] Forked 26357 +[12138] Forked 26358 +(26357) found +(26358) found +[12137] Forked 26359 +[12136] Forked 26360 +(26359) found +(26360) found +[12135] Forked 26361 +[12134] Forked 26362 +(26361) found +(26362) found +[12133] Forked 26363 +[12132] Forked 26364 +(26363) found +(26364) found +[12131] Forked 26365 +[12130] Forked 26366 +(26365) found +(26366) found +[12129] Forked 26367 +(26367) found +[12128] Forked 26368 +(26368) found +[12127] Forked 26369 +(26369) found +[12126] Forked 26370 +(26370) found +[12125] Forked 26371 +(26371) found +[12124] Forked 26372 +(26372) found +[12123] Forked 26373 +(26373) found +[12122] Forked 26374 +(26374) found +[12121] Forked 26375 +(26375) found +[12120] Forked 26376 +(26376) found +[12119] Forked 26377 +(26377) found +[12118] Forked 26378 +(26378) found +[12117] Forked 26379 +(26379) found +[12116] Forked 26380 +(26380) found +[12115] Forked 26381 +(26381) found +[12114] Forked 26382 +(26382) found +[12113] Forked 26383 +(26383) found +[12112] Forked 26384 +(26384) found +[12111] Forked 26385 +(26385) found +[12110] Forked 26386 +(26386) found +[12109] Forked 26387 +(26387) found +[12108] Forked 26388 +(26388) found +[12107] Forked 26389 +(26389) found +[12106] Forked 26390 +(26390) found +[12105] Forked 26391 +(26391) found +[12104] Forked 26392 +(26392) found +[12103] Forked 26393 +(26393) found +[12102] Forked 26394 +(26394) found +[12101] Forked 26395 +(26395) found +[12100] Forked 26396 +(26396) found +[12099] Forked 26397 +(26397) found +[12098] Forked 26398 +(26398) found +[12097] Forked 26399 +(26399) found +[12096] Forked 26400 +(26400) found +[12095] Forked 26401 +[12094] Forked 26402 +(26401) found +(26402) found +[12093] Forked 26403 +[12092] Forked 26404 +(26403) found +(26404) found +[12091] Forked 26405 +[12090] Forked 26406 +(26405) found +(26406) found +[12089] Forked 26407 +[12088] Forked 26408 +(26407) found +(26408) found +[12087] Forked 26409 +[12086] Forked 26410 +(26409) found +(26410) found +[12085] Forked 26411 +[12084] Forked 26412 +(26411) found +(26412) found +[12083] Forked 26413 +[12082] Forked 26414 +(26413) found +(26414) found +[12081] Forked 26415 +[12080] Forked 26416 +(26415) found +(26416) found +[12079] Forked 26417 +[12078] Forked 26418 +(26417) found +(26418) found +[12077] Forked 26419 +[12076] Forked 26420 +(26419) found +(26420) found +[12075] Forked 26421 +[12074] Forked 26422 +(26421) found +(26422) found +[12073] Forked 26423 +[12072] Forked 26424 +(26423) found +(26424) found +[12071] Forked 26425 +[12070] Forked 26426 +(26425) found +(26426) found +[12069] Forked 26427 +[12068] Forked 26428 +(26427) found +(26428) found +[12067] Forked 26429 +[12066] Forked 26430 +(26429) found +(26430) found +[12065] Forked 26431 +[12064] Forked 26432 +(26431) found +(26432) found +[12063] Forked 26433 +[12062] Forked 26434 +(26433) found +(26434) found +[12061] Forked 26435 +[12060] Forked 26436 +(26435) found +(26436) found +[12059] Forked 26437 +[12058] Forked 26438 +(26437) found +(26438) found +[12057] Forked 26439 +[12056] Forked 26440 +(26439) found +(26440) found +[12055] Forked 26441 +[12054] Forked 26442 +(26441) found +(26442) found +[12053] Forked 26443 +[12052] Forked 26444 +(26443) found +(26444) found +[12051] Forked 26445 +[12050] Forked 26446 +(26445) found +(26446) found +[12049] Forked 26447 +[12048] Forked 26448 +(26447) found +(26448) found +[12047] Forked 26449 +[12046] Forked 26450 +(26449) found +(26450) found +[12045] Forked 26451 +[12044] Forked 26452 +(26451) found +(26452) found +[12043] Forked 26453 +[12042] Forked 26454 +(26453) found +(26454) found +[12041] Forked 26455 +[12040] Forked 26456 +(26455) found +(26456) found +[12039] Forked 26457 +[12038] Forked 26458 +(26457) found +(26458) found +[12037] Forked 26459 +[12036] Forked 26460 +(26459) found +(26460) found +[12035] Forked 26461 +[12034] Forked 26462 +(26461) found +(26462) found +[12033] Forked 26463 +[12032] Forked 26464 +(26463) found +(26464) found +[12031] Forked 26465 +[12030] Forked 26466 +(26465) found +(26466) found +[12029] Forked 26467 +[12028] Forked 26468 +(26467) found +(26468) found +[12027] Forked 26469 +[12026] Forked 26470 +(26469) found +(26470) found +[12025] Forked 26471 +[12024] Forked 26472 +(26471) found +(26472) found +[12023] Forked 26473 +[12022] Forked 26474 +(26473) found +(26474) found +[12021] Forked 26475 +[12020] Forked 26476 +(26475) found +(26476) found +[12019] Forked 26477 +[12018] Forked 26478 +(26477) found +(26478) found +[12017] Forked 26479 +[12016] Forked 26480 +(26479) found +(26480) found +[12015] Forked 26481 +[12014] Forked 26482 +(26481) found +(26482) found +[12013] Forked 26483 +[12012] Forked 26484 +(26483) found +(26484) found +[12011] Forked 26485 +[12010] Forked 26486 +(26485) found +(26486) found +[12009] Forked 26487 +[12008] Forked 26488 +(26487) found +(26488) found +[12007] Forked 26489 +[12006] Forked 26490 +(26489) found +(26490) found +[12005] Forked 26491 +[12004] Forked 26492 +(26491) found +(26492) found +[12003] Forked 26493 +[12002] Forked 26494 +(26493) found +(26494) found +[12001] Forked 26495 +[12000] Forked 26496 +(26495) found +(26496) found +[11999] Forked 26497 +[11998] Forked 26498 +(26497) found +(26498) found +[11997] Forked 26499 +[11996] Forked 26500 +(26499) found +(26500) found +[11995] Forked 26501 +[11994] Forked 26502 +(26501) found +(26502) found +[11993] Forked 26503 +[11992] Forked 26504 +(26503) found +(26504) found +[11991] Forked 26505 +[11990] Forked 26506 +(26505) found +(26506) found +[11989] Forked 26507 +[11988] Forked 26508 +(26507) found +(26508) found +[11987] Forked 26509 +[11986] Forked 26510 +(26509) found +(26510) found +[11985] Forked 26511 +[11984] Forked 26512 +(26511) found +(26512) found +[11983] Forked 26513 +[11982] Forked 26514 +(26513) found +(26514) found +[11981] Forked 26515 +[11980] Forked 26516 +(26515) found +(26516) found +[11979] Forked 26517 +[11978] Forked 26518 +(26517) found +(26518) found +[11977] Forked 26519 +[11976] Forked 26520 +(26519) found +(26520) found +[11975] Forked 26521 +[11974] Forked 26522 +(26521) found +(26522) found +[11973] Forked 26523 +[11972] Forked 26524 +(26523) found +(26524) found +[11971] Forked 26525 +[11970] Forked 26526 +(26525) found +(26526) found +[11969] Forked 26527 +[11968] Forked 26528 +(26527) found +(26528) found +[11967] Forked 26529 +[11966] Forked 26530 +(26529) found +(26530) found +[11965] Forked 26531 +[11964] Forked 26532 +(26531) found +(26532) found +[11963] Forked 26533 +[11962] Forked 26534 +(26533) found +(26534) found +[11961] Forked 26535 +[11960] Forked 26536 +(26535) found +(26536) found +[11959] Forked 26537 +(26537) found +[11958] Forked 26538 +(26538) found +[11957] Forked 26539 +(26539) found +[11956] Forked 26540 +(26540) found +[11955] Forked 26541 +(26541) found +[11954] Forked 26542 +(26542) found +[11953] Forked 26543 +(26543) found +[11952] Forked 26544 +(26544) found +[11951] Forked 26545 +(26545) found +[11950] Forked 26546 +(26546) found +[11949] Forked 26547 +(26547) found +[11948] Forked 26548 +(26548) found +[11947] Forked 26549 +(26549) found +[11946] Forked 26550 +(26550) found +[11945] Forked 26551 +(26551) found +[11944] Forked 26552 +(26552) found +[11943] Forked 26553 +(26553) found +[11942] Forked 26554 +(26554) found +[11941] Forked 26555 +(26555) found +[11940] Forked 26556 +(26556) found +[11939] Forked 26557 +(26557) found +[11938] Forked 26558 +(26558) found +[11937] Forked 26559 +(26559) found +[11936] Forked 26560 +(26560) found +[11935] Forked 26561 +(26561) found +[11934] Forked 26562 +(26562) found +[11933] Forked 26563 +(26563) found +[11932] Forked 26564 +(26564) found +[11931] Forked 26565 +(26565) found +[11930] Forked 26566 +(26566) found +[11929] Forked 26567 +(26567) found +[11928] Forked 26568 +(26568) found +[11927] Forked 26569 +(26569) found +[11926] Forked 26570 +(26570) found +[11925] Forked 26571 +(26571) found +[11924] Forked 26572 +(26572) found +[11923] Forked 26573 +(26573) found +[11922] Forked 26574 +(26574) found +[11921] Forked 26575 +(26575) found +[11920] Forked 26576 +(26576) found +[11919] Forked 26577 +(26577) found +[11918] Forked 26578 +(26578) found +[11917] Forked 26579 +(26579) found +[11916] Forked 26580 +(26580) found +[11915] Forked 26581 +(26581) found +[11914] Forked 26582 +(26582) found +[11913] Forked 26583 +(26583) found +[11912] Forked 26584 +(26584) found +[11911] Forked 26585 +(26585) found +[11910] Forked 26586 +(26586) found +[11909] Forked 26587 +(26587) found +[11908] Forked 26588 +(26588) found +[11907] Forked 26589 +(26589) found +[11906] Forked 26590 +(26590) found +[11905] Forked 26591 +(26591) found +[11904] Forked 26592 +(26592) found +[11903] Forked 26593 +(26593) found +[11902] Forked 26594 +(26594) found +[11901] Forked 26595 +(26595) found +[11900] Forked 26596 +(26596) found +[11899] Forked 26597 +(26597) found +[11898] Forked 26598 +(26598) found +[11897] Forked 26599 +(26599) found +[11896] Forked 26600 +(26600) found +[11895] Forked 26601 +(26601) found +[11894] Forked 26602 +(26602) found +[11893] Forked 26603 +(26603) found +[11892] Forked 26604 +(26604) found +[11891] Forked 26605 +(26605) found +[11890] Forked 26606 +(26606) found +[11889] Forked 26607 +(26607) found +[11888] Forked 26608 +(26608) found +[11887] Forked 26609 +[11886] Forked 26610 +(26609) found +(26610) found +[11885] Forked 26611 +[11884] Forked 26612 +(26611) found +(26612) found +[11883] Forked 26613 +[11882] Forked 26614 +(26613) found +(26614) found +[11881] Forked 26615 +[11880] Forked 26616 +(26615) found +(26616) found +[11879] Forked 26617 +[11878] Forked 26618 +(26617) found +(26618) found +[11877] Forked 26619 +[11876] Forked 26620 +(26619) found +(26620) found +[11875] Forked 26621 +[11874] Forked 26622 +(26621) found +(26622) found +[11873] Forked 26623 +[11872] Forked 26624 +(26623) found +(26624) found +[11871] Forked 26625 +[11870] Forked 26626 +(26625) found +(26626) found +[11869] Forked 26627 +[11868] Forked 26628 +(26627) found +(26628) found +[11867] Forked 26629 +[11866] Forked 26630 +(26629) found +(26630) found +[11865] Forked 26631 +[11864] Forked 26632 +(26631) found +(26632) found +[11863] Forked 26633 +[11862] Forked 26634 +(26633) found +(26634) found +[11861] Forked 26635 +[11860] Forked 26636 +(26635) found +(26636) found +[11859] Forked 26637 +[11858] Forked 26638 +(26637) found +(26638) found +[11857] Forked 26639 +[11856] Forked 26640 +(26639) found +(26640) found +[11855] Forked 26641 +[11854] Forked 26642 +(26641) found +(26642) found +[11853] Forked 26643 +[11852] Forked 26644 +(26643) found +(26644) found +[11851] Forked 26645 +[11850] Forked 26646 +(26645) found +(26646) found +[11849] Forked 26647 +[11848] Forked 26648 +(26647) found +(26648) found +[11847] Forked 26649 +[11846] Forked 26650 +(26649) found +(26650) found +[11845] Forked 26651 +[11844] Forked 26652 +(26651) found +(26652) found +[11843] Forked 26653 +(26653) found +[11842] Forked 26654 +(26654) found +[11841] Forked 26655 +(26655) found +[11840] Forked 26656 +(26656) found +[11839] Forked 26657 +(26657) found +[11838] Forked 26658 +(26658) found +[11837] Forked 26659 +(26659) found +[11836] Forked 26660 +(26660) found +[11835] Forked 26661 +(26661) found +[11834] Forked 26662 +(26662) found +[11833] Forked 26663 +(26663) found +[11832] Forked 26664 +(26664) found +[11831] Forked 26665 +(26665) found +[11830] Forked 26666 +(26666) found +[11829] Forked 26667 +(26667) found +[11828] Forked 26668 +(26668) found +[11827] Forked 26669 +(26669) found +[11826] Forked 26670 +(26670) found +[11825] Forked 26671 +(26671) found +[11824] Forked 26672 +(26672) found +[11823] Forked 26673 +(26673) found +[11822] Forked 26674 +(26674) found +[11821] Forked 26675 +(26675) found +[11820] Forked 26676 +(26676) found +[11819] Forked 26677 +(26677) found +[11818] Forked 26678 +(26678) found +[11817] Forked 26679 +(26679) found +[11816] Forked 26680 +(26680) found +[11815] Forked 26681 +(26681) found +[11814] Forked 26682 +(26682) found +[11813] Forked 26683 +(26683) found +[11812] Forked 26684 +(26684) found +[11811] Forked 26685 +(26685) found +[11810] Forked 26686 +(26686) found +[11809] Forked 26687 +(26687) found +[11808] Forked 26688 +(26688) found +[11807] Forked 26689 +[11806] Forked 26690 +(26689) found +(26690) found +[11805] Forked 26691 +[11804] Forked 26692 +(26691) found +(26692) found +[11803] Forked 26693 +[11802] Forked 26694 +(26693) found +(26694) found +[11801] Forked 26695 +[11800] Forked 26696 +(26695) found +(26696) found +[11799] Forked 26697 +[11798] Forked 26698 +(26697) found +(26698) found +[11797] Forked 26699 +[11796] Forked 26700 +(26699) found +(26700) found +[11795] Forked 26701 +[11794] Forked 26702 +(26701) found +(26702) found +[11793] Forked 26703 +[11792] Forked 26704 +(26703) found +(26704) found +[11791] Forked 26705 +[11790] Forked 26706 +(26705) found +(26706) found +[11789] Forked 26707 +[11788] Forked 26708 +(26707) found +(26708) found +[11787] Forked 26709 +[11786] Forked 26710 +(26709) found +(26710) found +[11785] Forked 26711 +[11784] Forked 26712 +(26711) found +(26712) found +[11783] Forked 26713 +[11782] Forked 26714 +(26713) found +(26714) found +[11781] Forked 26715 +[11780] Forked 26716 +(26715) found +(26716) found +[11779] Forked 26717 +[11778] Forked 26718 +(26717) found +(26718) found +[11777] Forked 26719 +[11776] Forked 26720 +(26719) found +(26720) found +[11775] Forked 26721 +[11774] Forked 26722 +(26721) found +(26722) found +[11773] Forked 26723 +[11772] Forked 26724 +(26723) found +(26724) found +[11771] Forked 26725 +[11770] Forked 26726 +(26725) found +(26726) found +[11769] Forked 26727 +[11768] Forked 26728 +(26727) found +(26728) found +[11767] Forked 26729 +[11766] Forked 26730 +(26729) found +(26730) found +[11765] Forked 26731 +[11764] Forked 26732 +(26731) found +(26732) found +[11763] Forked 26733 +(26733) found +[11762] Forked 26734 +(26734) found +[11761] Forked 26735 +(26735) found +[11760] Forked 26736 +(26736) found +[11759] Forked 26737 +(26737) found +[11758] Forked 26738 +(26738) found +[11757] Forked 26739 +(26739) found +[11756] Forked 26740 +(26740) found +[11755] Forked 26741 +(26741) found +[11754] Forked 26742 +(26742) found +[11753] Forked 26743 +(26743) found +[11752] Forked 26744 +(26744) found +[11751] Forked 26745 +(26745) found +[11750] Forked 26746 +(26746) found +[11749] Forked 26747 +(26747) found +[11748] Forked 26748 +(26748) found +[11747] Forked 26749 +(26749) found +[11746] Forked 26750 +(26750) found +[11745] Forked 26751 +(26751) found +[11744] Forked 26752 +(26752) found +[11743] Forked 26753 +(26753) found +[11742] Forked 26754 +(26754) found +[11741] Forked 26755 +(26755) found +[11740] Forked 26756 +(26756) found +[11739] Forked 26757 +(26757) found +[11738] Forked 26758 +(26758) found +[11737] Forked 26759 +(26759) found +[11736] Forked 26760 +(26760) found +[11735] Forked 26761 +(26761) found +[11734] Forked 26762 +(26762) found +[11733] Forked 26763 +(26763) found +[11732] Forked 26764 +(26764) found +[11731] Forked 26765 +(26765) found +[11730] Forked 26766 +(26766) found +[11729] Forked 26767 +(26767) found +[11728] Forked 26768 +(26768) found +[11727] Forked 26769 +[11726] Forked 26770 +(26769) found +(26770) found +[11725] Forked 26771 +[11724] Forked 26772 +(26771) found +(26772) found +[11723] Forked 26773 +(26773) found +[11722] Forked 26774 +[11721] Forked 26775 +(26774) found +(26775) found +[11720] Forked 26776 +[11719] Forked 26777 +(26776) found +(26777) found +[11718] Forked 26778 +[11717] Forked 26779 +(26778) found +(26779) found +[11716] Forked 26780 +[11715] Forked 26781 +(26780) found +(26781) found +[11714] Forked 26782 +[11713] Forked 26783 +(26782) found +(26783) found +[11712] Forked 26784 +[11711] Forked 26785 +(26784) found +(26785) found +[11710] Forked 26786 +[11709] Forked 26787 +(26786) found +(26787) found +[11708] Forked 26788 +[11707] Forked 26789 +(26788) found +(26789) found +[11706] Forked 26790 +[11705] Forked 26791 +(26790) found +(26791) found +[11704] Forked 26792 +[11703] Forked 26793 +(26792) found +(26793) found +[11702] Forked 26794 +[11701] Forked 26795 +(26794) found +(26795) found +[11700] Forked 26796 +[11699] Forked 26797 +(26796) found +(26797) found +[11698] Forked 26798 +[11697] Forked 26799 +(26798) found +(26799) found +[11696] Forked 26800 +[11695] Forked 26801 +(26800) found +(26801) found +[11694] Forked 26802 +[11693] Forked 26803 +(26802) found +(26803) found +[11692] Forked 26804 +[11691] Forked 26805 +(26804) found +(26805) found +[11690] Forked 26806 +[11689] Forked 26807 +(26806) found +(26807) found +[11688] Forked 26808 +[11687] Forked 26809 +(26808) found +(26809) found +[11686] Forked 26810 +[11685] Forked 26811 +(26810) found +(26811) found +[11684] Forked 26812 +(26812) found +[11683] Forked 26813 +(26813) found +[11682] Forked 26814 +(26814) found +[11681] Forked 26815 +(26815) found +[11680] Forked 26816 +(26816) found +[11679] Forked 26817 +(26817) found +[11678] Forked 26818 +(26818) found +[11677] Forked 26819 +(26819) found +[11676] Forked 26820 +(26820) found +[11675] Forked 26822 +(26822) found +[11674] Forked 26823 +(26823) found +[11673] Forked 26824 +(26824) found +[11672] Forked 26825 +(26825) found +[11671] Forked 26826 +(26826) found +[11670] Forked 26827 +(26827) found +[11669] Forked 26828 +(26828) found +[11668] Forked 26829 +(26829) found +[11667] Forked 26830 +(26830) found +[11666] Forked 26831 +(26831) found +[11665] Forked 26832 +(26832) found +[11664] Forked 26833 +(26833) found +[11663] Forked 26834 +(26834) found +[11662] Forked 26835 +(26835) found +[11661] Forked 26836 +(26836) found +[11660] Forked 26837 +(26837) found +[11659] Forked 26838 +(26838) found +[11658] Forked 26839 +(26839) found +[11657] Forked 26840 +(26840) found +[11656] Forked 26841 +(26841) found +[11655] Forked 26842 +(26842) found +[11654] Forked 26843 +(26843) found +[11653] Forked 26844 +(26844) found +[11652] Forked 26845 +(26845) found +[11651] Forked 26846 +(26846) found +[11650] Forked 26847 +(26847) found +[11649] Forked 26848 +(26848) found +[11648] Forked 26849 +[11647] Forked 26850 +(26849) found +(26850) found +[11646] Forked 26851 +[11645] Forked 26852 +(26851) found +(26852) found +[11644] Forked 26853 +[11643] Forked 26854 +(26853) found +(26854) found +[11642] Forked 26855 +[11641] Forked 26856 +(26855) found +(26856) found +[11640] Forked 26857 +[11639] Forked 26858 +(26857) found +(26858) found +[11638] Forked 26859 +[11637] Forked 26860 +(26859) found +(26860) found +[11636] Forked 26861 +[11635] Forked 26862 +(26861) found +(26862) found +[11634] Forked 26863 +[11633] Forked 26864 +(26863) found +(26864) found +[11632] Forked 26865 +[11631] Forked 26866 +(26865) found +(26866) found +[11630] Forked 26867 +[11629] Forked 26868 +(26867) found +(26868) found +[11628] Forked 26869 +[11627] Forked 26870 +(26869) found +(26870) found +[11626] Forked 26871 +[11625] Forked 26872 +(26871) found +(26872) found +[11624] Forked 26873 +[11623] Forked 26874 +(26873) found +(26874) found +[11622] Forked 26875 +[11621] Forked 26876 +(26875) found +(26876) found +[11620] Forked 26877 +[11619] Forked 26878 +(26877) found +(26878) found +[11618] Forked 26879 +[11617] Forked 26880 +(26879) found +(26880) found +[11616] Forked 26881 +[11615] Forked 26882 +(26881) found +(26882) found +[11614] Forked 26883 +[11613] Forked 26884 +(26883) found +(26884) found +[11612] Forked 26885 +[11611] Forked 26886 +(26885) found +(26886) found +[11610] Forked 26887 +[11609] Forked 26888 +(26887) found +(26888) found +[11608] Forked 26889 +[11607] Forked 26890 +(26889) found +(26890) found +[11606] Forked 26891 +[11605] Forked 26892 +(26891) found +(26892) found +[11604] Forked 26893 +(26893) found +[11603] Forked 26894 +(26894) found +[11602] Forked 26895 +(26895) found +[11601] Forked 26896 +(26896) found +[11600] Forked 26897 +(26897) found +[11599] Forked 26898 +(26898) found +[11598] Forked 26899 +(26899) found +[11597] Forked 26900 +(26900) found +[11596] Forked 26901 +(26901) found +[11595] Forked 26902 +(26902) found +[11594] Forked 26903 +(26903) found +[11593] Forked 26904 +(26904) found +[11592] Forked 26905 +(26905) found +[11591] Forked 26906 +(26906) found +[11590] Forked 26907 +(26907) found +[11589] Forked 26908 +(26908) found +[11588] Forked 26909 +(26909) found +[11587] Forked 26910 +(26910) found +[11586] Forked 26911 +(26911) found +[11585] Forked 26912 +(26912) found +[11584] Forked 26913 +(26913) found +[11583] Forked 26914 +(26914) found +[11582] Forked 26915 +(26915) found +[11581] Forked 26916 +(26916) found +[11580] Forked 26917 +(26917) found +[11579] Forked 26918 +(26918) found +[11578] Forked 26919 +(26919) found +[11577] Forked 26920 +(26920) found +[11576] Forked 26921 +(26921) found +[11575] Forked 26922 +(26922) found +[11574] Forked 26923 +(26923) found +[11573] Forked 26924 +(26924) found +[11572] Forked 26925 +(26925) found +[11571] Forked 26926 +(26926) found +[11570] Forked 26927 +(26927) found +[11569] Forked 26928 +(26928) found +[11568] Forked 26929 +(26929) found +[11567] Forked 26930 +[11566] Forked 26931 +(26930) found +(26931) found +[11565] Forked 26932 +[11564] Forked 26933 +(26932) found +(26933) found +[11563] Forked 26934 +[11562] Forked 26935 +(26934) found +(26935) found +[11561] Forked 26936 +[11560] Forked 26937 +(26936) found +(26937) found +[11559] Forked 26938 +[11558] Forked 26939 +(26938) found +(26939) found +[11557] Forked 26940 +[11556] Forked 26941 +(26940) found +(26941) found +[11555] Forked 26942 +[11554] Forked 26943 +(26942) found +(26943) found +[11553] Forked 26944 +[11552] Forked 26945 +(26944) found +(26945) found +[11551] Forked 26946 +[11550] Forked 26947 +(26946) found +(26947) found +[11549] Forked 26948 +[11548] Forked 26949 +(26948) found +(26949) found +[11547] Forked 26950 +[11546] Forked 26951 +(26950) found +(26951) found +[11545] Forked 26952 +[11544] Forked 26953 +(26952) found +(26953) found +[11543] Forked 26954 +[11542] Forked 26955 +(26954) found +(26955) found +[11541] Forked 26956 +[11540] Forked 26957 +(26957) found +(26956) found +[11539] Forked 26958 +(26958) found +[11538] Forked 26959 +(26959) found +[11537] Forked 26960 +(26960) found +[11536] Forked 26961 +(26961) found +[11535] Forked 26962 +(26962) found +[11534] Forked 26963 +[11533] Forked 26964 +(26963) found +(26964) found +[11532] Forked 26965 +[11531] Forked 26966 +(26965) found +(26966) found +[11530] Forked 26967 +[11529] Forked 26968 +(26967) found +(26968) found +[11528] Forked 26969 +[11527] Forked 26970 +(26969) found +(26970) found +[11526] Forked 26971 +[11525] Forked 26972 +(26971) found +(26972) found +[11524] Forked 26973 +[11523] Forked 26974 +(26973) found +(26974) found +[11522] Forked 26975 +[11521] Forked 26976 +(26975) found +(26976) found +[11520] Forked 26977 +[11519] Forked 26978 +(26977) found +(26978) found +[11518] Forked 26979 +[11517] Forked 26980 +(26979) found +(26980) found +[11516] Forked 26981 +[11515] Forked 26982 +(26981) found +(26982) found +[11514] Forked 26983 +[11513] Forked 26984 +(26983) found +(26984) found +[11512] Forked 26985 +[11511] Forked 26986 +(26985) found +(26986) found +[11510] Forked 26987 +[11509] Forked 26988 +(26987) found +(26988) found +[11508] Forked 26989 +[11507] Forked 26990 +(26989) found +(26990) found +[11506] Forked 26991 +[11505] Forked 26992 +(26991) found +(26992) found +[11504] Forked 26993 +[11503] Forked 26994 +(26993) found +(26994) found +[11502] Forked 26995 +[11501] Forked 26996 +(26995) found +(26996) found +[11500] Forked 26997 +[11499] Forked 26998 +(26997) found +(26998) found +[11498] Forked 26999 +[11497] Forked 27000 +(26999) found +(27000) found +[11496] Forked 27001 +[11495] Forked 27002 +(27001) found +(27002) found +[11494] Forked 27003 +[11493] Forked 27004 +(27003) found +(27004) found +[11492] Forked 27005 +[11491] Forked 27006 +(27005) found +(27006) found +[11490] Forked 27007 +[11489] Forked 27008 +(27007) found +(27008) found +[11488] Forked 27009 +[11487] Forked 27010 +(27009) found +(27010) found +[11486] Forked 27011 +[11485] Forked 27012 +(27011) found +(27012) found +[11484] Forked 27013 +[11483] Forked 27014 +(27013) found +(27014) found +[11482] Forked 27015 +(27015) found +[11481] Forked 27016 +(27016) found +[11480] Forked 27017 +(27017) found +[11479] Forked 27018 +(27018) found +[11478] Forked 27019 +(27019) found +[11477] Forked 27020 +(27020) found +[11476] Forked 27021 +(27021) found +[11475] Forked 27022 +(27022) found +[11474] Forked 27023 +(27023) found +[11473] Forked 27024 +(27024) found +[11472] Forked 27025 +(27025) found +[11471] Forked 27026 +(27026) found +[11470] Forked 27027 +(27027) found +[11469] Forked 27028 +(27028) found +[11468] Forked 27029 +(27029) found +[11467] Forked 27030 +(27030) found +[11466] Forked 27031 +(27031) found +[11465] Forked 27032 +(27032) found +[11464] Forked 27033 +(27033) found +[11463] Forked 27034 +(27034) found +[11462] Forked 27035 +(27035) found +[11461] Forked 27036 +(27036) found +[11460] Forked 27037 +(27037) found +[11459] Forked 27038 +(27038) found +[11458] Forked 27039 +(27039) found +[11457] Forked 27040 +(27040) found +[11456] Forked 27041 +(27041) found +[11455] Forked 27042 +(27042) found +[11454] Forked 27043 +(27043) found +[11453] Forked 27044 +(27044) found +[11452] Forked 27045 +(27045) found +[11451] Forked 27046 +(27046) found +[11450] Forked 27047 +(27047) found +[11449] Forked 27048 +(27048) found +[11448] Forked 27049 +[11447] Forked 27050 +(27049) found +(27050) found +[11446] Forked 27051 +[11445] Forked 27052 +(27051) found +(27052) found +[11444] Forked 27053 +[11443] Forked 27054 +(27053) found +(27054) found +[11442] Forked 27055 +[11441] Forked 27056 +(27055) found +(27056) found +[11440] Forked 27057 +[11439] Forked 27058 +(27057) found +(27058) found +[11438] Forked 27059 +[11437] Forked 27060 +(27059) found +(27060) found +[11436] Forked 27061 +[11435] Forked 27062 +(27061) found +(27062) found +[11434] Forked 27063 +[11433] Forked 27064 +(27063) found +(27064) found +[11432] Forked 27065 +[11431] Forked 27066 +(27065) found +(27066) found +[11430] Forked 27067 +[11429] Forked 27068 +(27067) found +(27068) found +[11428] Forked 27069 +[11427] Forked 27070 +(27069) found +(27070) found +[11426] Forked 27071 +[11425] Forked 27072 +(27071) found +(27072) found +[11424] Forked 27073 +[11423] Forked 27074 +(27073) found +(27074) found +[11422] Forked 27075 +[11421] Forked 27076 +(27075) found +(27076) found +[11420] Forked 27077 +[11419] Forked 27078 +(27078) found +(27077) found +[11418] Forked 27079 +(27079) found +[11417] Forked 27080 +(27080) found +[11416] Forked 27081 +(27081) found +[11415] Forked 27082 +(27082) found +[11414] Forked 27083 +(27083) found +[11413] Forked 27084 +(27084) found +[11412] Forked 27085 +(27085) found +[11411] Forked 27086 +(27086) found +[11410] Forked 27087 +(27087) found +[11409] Forked 27088 +(27088) found +[11408] Forked 27089 +(27089) found +[11407] Forked 27090 +(27090) found +[11406] Forked 27091 +(27091) found +[11405] Forked 27092 +(27092) found +[11404] Forked 27093 +(27093) found +[11403] Forked 27094 +(27094) found +[11402] Forked 27095 +(27095) found +[11401] Forked 27096 +(27096) found +[11400] Forked 27097 +(27097) found +[11399] Forked 27098 +(27098) found +[11398] Forked 27099 +(27099) found +[11397] Forked 27100 +(27100) found +[11396] Forked 27101 +(27101) found +[11395] Forked 27102 +(27102) found +[11394] Forked 27103 +(27103) found +[11393] Forked 27104 +(27104) found +[11392] Forked 27105 +(27105) found +[11391] Forked 27106 +(27106) found +[11390] Forked 27107 +(27107) found +[11389] Forked 27108 +(27108) found +[11388] Forked 27109 +(27109) found +[11387] Forked 27110 +(27110) found +[11386] Forked 27111 +(27111) found +[11385] Forked 27112 +(27112) found +[11384] Forked 27113 +(27113) found +[11383] Forked 27114 +(27114) found +[11382] Forked 27115 +(27115) found +[11381] Forked 27116 +(27116) found +[11380] Forked 27117 +(27117) found +[11379] Forked 27118 +(27118) found +[11378] Forked 27119 +(27119) found +[11377] Forked 27120 +(27120) found +[11376] Forked 27121 +(27121) found +[11375] Forked 27122 +(27122) found +[11374] Forked 27123 +(27123) found +[11373] Forked 27124 +(27124) found +[11372] Forked 27125 +(27125) found +[11371] Forked 27126 +[11370] Forked 27127 +(27126) found +(27127) found +[11369] Forked 27128 +[11368] Forked 27129 +(27128) found +(27129) found +[11367] Forked 27130 +[11366] Forked 27131 +(27130) found +(27131) found +[11365] Forked 27132 +[11364] Forked 27133 +(27132) found +(27133) found +[11363] Forked 27134 +[11362] Forked 27135 +(27134) found +(27135) found +[11361] Forked 27136 +[11360] Forked 27137 +(27136) found +(27137) found +[11359] Forked 27138 +[11358] Forked 27139 +(27138) found +(27139) found +[11357] Forked 27140 +[11356] Forked 27141 +(27140) found +(27141) found +[11355] Forked 27142 +[11354] Forked 27143 +(27142) found +(27143) found +[11353] Forked 27144 +[11352] Forked 27145 +(27144) found +(27145) found +[11351] Forked 27146 +[11350] Forked 27147 +(27146) found +(27147) found +[11349] Forked 27148 +[11348] Forked 27149 +(27148) found +(27149) found +[11347] Forked 27150 +[11346] Forked 27151 +(27150) found +(27151) found +[11345] Forked 27152 +[11344] Forked 27153 +(27152) found +(27153) found +[11343] Forked 27154 +[11342] Forked 27155 +(27154) found +(27155) found +[11341] Forked 27156 +[11340] Forked 27157 +(27156) found +(27157) found +[11339] Forked 27158 +[11338] Forked 27159 +(27158) found +(27159) found +[11337] Forked 27160 +[11336] Forked 27161 +(27160) found +(27161) found +[11335] Forked 27162 +[11334] Forked 27163 +(27162) found +(27163) found +[11333] Forked 27164 +[11332] Forked 27165 +(27164) found +(27165) found +[11331] Forked 27166 +[11330] Forked 27167 +(27166) found +(27167) found +[11329] Forked 27168 +[11328] Forked 27169 +(27168) found +(27169) found +[11327] Forked 27170 +[11326] Forked 27171 +(27170) found +(27171) found +[11325] Forked 27172 +(27172) found +[11324] Forked 27173 +(27173) found +[11323] Forked 27174 +(27174) found +[11322] Forked 27175 +(27175) found +[11321] Forked 27176 +(27176) found +[11320] Forked 27177 +(27177) found +[11319] Forked 27178 +(27178) found +[11318] Forked 27179 +(27179) found +[11317] Forked 27180 +(27180) found +[11316] Forked 27181 +(27181) found +[11315] Forked 27182 +(27182) found +[11314] Forked 27183 +(27183) found +[11313] Forked 27184 +(27184) found +[11312] Forked 27185 +(27185) found +[11311] Forked 27186 +(27186) found +[11310] Forked 27187 +(27187) found +[11309] Forked 27188 +(27188) found +[11308] Forked 27189 +(27189) found +[11307] Forked 27190 +(27190) found +[11306] Forked 27191 +(27191) found +[11305] Forked 27192 +(27192) found +[11304] Forked 27193 +(27193) found +[11303] Forked 27194 +(27194) found +[11302] Forked 27195 +(27195) found +[11301] Forked 27196 +(27196) found +[11300] Forked 27197 +(27197) found +[11299] Forked 27198 +(27198) found +[11298] Forked 27199 +(27199) found +[11297] Forked 27200 +(27200) found +[11296] Forked 27201 +(27201) found +[11295] Forked 27202 +(27202) found +[11294] Forked 27203 +(27203) found +[11293] Forked 27204 +(27204) found +[11292] Forked 27205 +(27205) found +[11291] Forked 27206 +[11290] Forked 27207 +(27206) found +(27207) found +[11289] Forked 27208 +[11288] Forked 27209 +(27208) found +(27209) found +[11287] Forked 27210 +[11286] Forked 27211 +(27210) found +(27211) found +[11285] Forked 27212 +[11284] Forked 27213 +(27212) found +(27213) found +[11283] Forked 27214 +[11282] Forked 27215 +(27214) found +(27215) found +[11281] Forked 27216 +[11280] Forked 27217 +(27216) found +(27217) found +[11279] Forked 27218 +[11278] Forked 27219 +(27218) found +(27219) found +[11277] Forked 27220 +[11276] Forked 27221 +(27220) found +(27221) found +[11275] Forked 27222 +[11274] Forked 27223 +(27222) found +(27223) found +[11273] Forked 27224 +[11272] Forked 27225 +(27224) found +(27225) found +[11271] Forked 27226 +[11270] Forked 27227 +(27226) found +(27227) found +[11269] Forked 27228 +[11268] Forked 27229 +(27228) found +(27229) found +[11267] Forked 27230 +[11266] Forked 27231 +(27230) found +(27231) found +[11265] Forked 27232 +[11264] Forked 27233 +(27232) found +(27233) found +[11263] Forked 27234 +[11262] Forked 27235 +(27234) found +(27235) found +[11261] Forked 27236 +[11260] Forked 27237 +(27236) found +(27237) found +[11259] Forked 27238 +[11258] Forked 27239 +(27238) found +(27239) found +[11257] Forked 27240 +[11256] Forked 27241 +(27240) found +(27241) found +[11255] Forked 27242 +[11254] Forked 27243 +(27242) found +(27243) found +[11253] Forked 27244 +[11252] Forked 27245 +(27244) found +(27245) found +[11251] Forked 27246 +[11250] Forked 27247 +(27246) found +(27247) found +[11249] Forked 27248 +[11248] Forked 27249 +(27248) found +(27249) found +[11247] Forked 27250 +[11246] Forked 27251 +(27250) found +(27251) found +[11245] Forked 27252 +(27252) found +[11244] Forked 27253 +(27253) found +[11243] Forked 27254 +(27254) found +[11242] Forked 27255 +(27255) found +[11241] Forked 27256 +(27256) found +[11240] Forked 27257 +(27257) found +[11239] Forked 27258 +(27258) found +[11238] Forked 27259 +(27259) found +[11237] Forked 27260 +(27260) found +[11236] Forked 27261 +(27261) found +[11235] Forked 27262 +(27262) found +[11234] Forked 27263 +(27263) found +[11233] Forked 27264 +(27264) found +[11232] Forked 27265 +(27265) found +[11231] Forked 27266 +(27266) found +[11230] Forked 27267 +(27267) found +[11229] Forked 27268 +(27268) found +[11228] Forked 27269 +(27269) found +[11227] Forked 27270 +(27270) found +[11226] Forked 27271 +(27271) found +[11225] Forked 27272 +(27272) found +[11224] Forked 27273 +(27273) found +[11223] Forked 27274 +(27274) found +[11222] Forked 27275 +(27275) found +[11221] Forked 27276 +(27276) found +[11220] Forked 27277 +(27277) found +[11219] Forked 27278 +(27278) found +[11218] Forked 27279 +(27279) found +[11217] Forked 27280 +(27280) found +[11216] Forked 27281 +(27281) found +[11215] Forked 27282 +(27282) found +[11214] Forked 27283 +(27283) found +[11213] Forked 27284 +(27284) found +[11212] Forked 27285 +(27285) found +[11211] Forked 27286 +(27286) found +[11210] Forked 27287 +[11209] Forked 27288 +(27287) found +(27288) found +[11208] Forked 27289 +[11207] Forked 27290 +(27289) found +(27290) found +[11206] Forked 27291 +[11205] Forked 27292 +(27291) found +(27292) found +[11204] Forked 27293 +[11203] Forked 27294 +(27293) found +(27294) found +[11202] Forked 27295 +[11201] Forked 27296 +(27295) found +(27296) found +[11200] Forked 27297 +[11199] Forked 27298 +(27297) found +(27298) found +[11198] Forked 27299 +[11197] Forked 27300 +(27299) found +(27300) found +[11196] Forked 27301 +[11195] Forked 27302 +(27301) found +(27302) found +[11194] Forked 27303 +[11193] Forked 27304 +(27303) found +(27304) found +[11192] Forked 27305 +[11191] Forked 27306 +(27305) found +(27306) found +[11190] Forked 27307 +[11189] Forked 27308 +(27307) found +(27308) found +[11188] Forked 27309 +[11187] Forked 27310 +(27309) found +(27310) found +[11186] Forked 27311 +[11185] Forked 27312 +(27311) found +(27312) found +[11184] Forked 27313 +[11183] Forked 27314 +(27313) found +(27314) found +[11182] Forked 27315 +[11181] Forked 27316 +(27315) found +(27316) found +[11180] Forked 27317 +[11179] Forked 27318 +(27317) found +(27318) found +[11178] Forked 27319 +[11177] Forked 27320 +(27319) found +(27320) found +[11176] Forked 27321 +[11175] Forked 27322 +(27321) found +(27322) found +[11174] Forked 27323 +[11173] Forked 27324 +(27323) found +(27324) found +[11172] Forked 27325 +[11171] Forked 27326 +(27325) found +(27326) found +[11170] Forked 27327 +[11169] Forked 27328 +(27327) found +(27328) found +[11168] Forked 27329 +[11167] Forked 27330 +(27329) found +(27330) found +[11166] Forked 27331 +[11165] Forked 27332 +(27331) found +(27332) found +[11164] Forked 27333 +[11163] Forked 27334 +(27333) found +(27334) found +[11162] Forked 27335 +[11161] Forked 27336 +(27335) found +(27336) found +[11160] Forked 27337 +[11159] Forked 27338 +(27337) found +(27338) found +[11158] Forked 27339 +[11157] Forked 27340 +(27339) found +(27340) found +[11156] Forked 27341 +[11155] Forked 27342 +(27341) found +(27342) found +[11154] Forked 27343 +[11153] Forked 27344 +(27343) found +(27344) found +[11152] Forked 27345 +[11151] Forked 27346 +(27345) found +(27346) found +[11150] Forked 27347 +[11149] Forked 27348 +(27347) found +(27348) found +[11148] Forked 27349 +[11147] Forked 27350 +(27349) found +(27350) found +[11146] Forked 27351 +[11145] Forked 27352 +(27351) found +(27352) found +[11144] Forked 27353 +[11143] Forked 27354 +(27353) found +(27354) found +[11142] Forked 27355 +[11141] Forked 27356 +(27355) found +(27356) found +[11140] Forked 27357 +[11139] Forked 27358 +(27357) found +(27358) found +[11138] Forked 27359 +[11137] Forked 27360 +(27359) found +(27360) found +[11136] Forked 27361 +[11135] Forked 27362 +(27361) found +(27362) found +[11134] Forked 27363 +[11133] Forked 27364 +(27363) found +(27364) found +[11132] Forked 27365 +[11131] Forked 27366 +(27365) found +(27366) found +[11130] Forked 27367 +[11129] Forked 27368 +(27367) found +(27368) found +[11128] Forked 27369 +[11127] Forked 27370 +(27369) found +(27370) found +[11126] Forked 27371 +[11125] Forked 27372 +(27371) found +(27372) found +[11124] Forked 27373 +[11123] Forked 27374 +(27373) found +(27374) found +[11122] Forked 27375 +[11121] Forked 27376 +(27375) found +(27376) found +[11120] Forked 27377 +[11119] Forked 27378 +(27377) found +(27378) found +[11118] Forked 27379 +[11117] Forked 27380 +(27379) found +(27380) found +[11116] Forked 27381 +[11115] Forked 27382 +(27381) found +(27382) found +[11114] Forked 27383 +[11113] Forked 27384 +(27383) found +(27384) found +[11112] Forked 27385 +[11111] Forked 27386 +(27385) found +(27386) found +[11110] Forked 27387 +[11109] Forked 27388 +(27387) found +(27388) found +[11108] Forked 27389 +[11107] Forked 27390 +(27389) found +(27390) found +[11106] Forked 27391 +[11105] Forked 27392 +(27391) found +(27392) found +[11104] Forked 27393 +[11103] Forked 27394 +(27393) found +(27394) found +[11102] Forked 27395 +[11101] Forked 27396 +(27395) found +(27396) found +[11100] Forked 27397 +[11099] Forked 27398 +(27397) found +(27398) found +[11098] Forked 27399 +[11097] Forked 27400 +(27399) found +(27400) found +[11096] Forked 27401 +[11095] Forked 27402 +(27401) found +(27402) found +[11094] Forked 27403 +[11093] Forked 27404 +(27403) found +(27404) found +[11092] Forked 27405 +[11091] Forked 27406 +(27405) found +(27406) found +[11090] Forked 27407 +[11089] Forked 27408 +(27407) found +(27408) found +[11088] Forked 27409 +[11087] Forked 27410 +(27409) found +(27410) found +[11086] Forked 27411 +[11085] Forked 27412 +(27411) found +(27412) found +[11084] Forked 27413 +[11083] Forked 27414 +(27413) found +(27414) found +[11082] Forked 27415 +[11081] Forked 27416 +(27415) found +(27416) found +[11080] Forked 27417 +[11079] Forked 27418 +(27417) found +(27418) found +[11078] Forked 27419 +[11077] Forked 27420 +(27419) found +(27420) found +[11076] Forked 27421 +[11075] Forked 27422 +(27421) found +(27422) found +[11074] Forked 27423 +(27423) found +[11073] Forked 27424 +(27424) found +[11072] Forked 27425 +(27425) found +[11071] Forked 27426 +(27426) found +[11070] Forked 27427 +(27427) found +[11069] Forked 27428 +(27428) found +[11068] Forked 27429 +(27429) found +[11067] Forked 27430 +(27430) found +[11066] Forked 27431 +(27431) found +[11065] Forked 27432 +(27432) found +[11064] Forked 27433 +(27433) found +[11063] Forked 27434 +(27434) found +[11062] Forked 27435 +(27435) found +[11061] Forked 27436 +(27436) found +[11060] Forked 27437 +(27437) found +[11059] Forked 27438 +(27438) found +[11058] Forked 27439 +(27439) found +[11057] Forked 27440 +(27440) found +[11056] Forked 27441 +(27441) found +[11055] Forked 27442 +(27442) found +[11054] Forked 27443 +(27443) found +[11053] Forked 27444 +(27444) found +[11052] Forked 27445 +(27445) found +[11051] Forked 27446 +(27446) found +[11050] Forked 27447 +(27447) found +[11049] Forked 27448 +(27448) found +[11048] Forked 27449 +(27449) found +[11047] Forked 27450 +(27450) found +[11046] Forked 27451 +(27451) found +[11045] Forked 27452 +(27452) found +[11044] Forked 27453 +(27453) found +[11043] Forked 27454 +(27454) found +[11042] Forked 27455 +(27455) found +[11041] Forked 27456 +(27456) found +[11040] Forked 27457 +[11039] Forked 27458 +(27457) found +(27458) found +[11038] Forked 27459 +[11037] Forked 27460 +(27459) found +(27460) found +[11036] Forked 27461 +[11035] Forked 27462 +(27461) found +(27462) found +[11034] Forked 27463 +[11033] Forked 27464 +(27463) found +(27464) found +[11032] Forked 27465 +[11031] Forked 27466 +(27465) found +(27466) found +[11030] Forked 27467 +[11029] Forked 27468 +(27467) found +(27468) found +[11028] Forked 27469 +[11027] Forked 27470 +(27469) found +(27470) found +[11026] Forked 27471 +[11025] Forked 27472 +(27471) found +(27472) found +[11024] Forked 27473 +[11023] Forked 27474 +(27473) found +(27474) found +[11022] Forked 27475 +[11021] Forked 27476 +(27475) found +(27476) found +[11020] Forked 27477 +[11019] Forked 27478 +(27477) found +(27478) found +[11018] Forked 27479 +[11017] Forked 27480 +(27479) found +(27480) found +[11016] Forked 27481 +[11015] Forked 27482 +(27481) found +(27482) found +[11014] Forked 27483 +[11013] Forked 27484 +(27483) found +(27484) found +[11012] Forked 27485 +[11011] Forked 27486 +(27485) found +(27486) found +[11010] Forked 27487 +[11009] Forked 27488 +(27487) found +(27488) found +[11008] Forked 27489 +[11007] Forked 27490 +(27489) found +(27490) found +[11006] Forked 27491 +[11005] Forked 27492 +(27491) found +(27492) found +[11004] Forked 27493 +[11003] Forked 27494 +(27493) found +(27494) found +[11002] Forked 27495 +[11001] Forked 27496 +(27495) found +(27496) found +[11000] Forked 27497 +[10999] Forked 27498 +(27497) found +(27498) found +[10998] Forked 27499 +[10997] Forked 27500 +(27499) found +(27500) found +[10996] Forked 27501 +[10995] Forked 27502 +(27501) found +(27502) found +[10994] Forked 27503 +(27503) found +[10993] Forked 27504 +(27504) found +[10992] Forked 27505 +(27505) found +[10991] Forked 27506 +(27506) found +[10990] Forked 27507 +(27507) found +[10989] Forked 27508 +(27508) found +[10988] Forked 27509 +(27509) found +[10987] Forked 27510 +(27510) found +[10986] Forked 27511 +(27511) found +[10985] Forked 27512 +(27512) found +[10984] Forked 27513 +(27513) found +[10983] Forked 27514 +(27514) found +[10982] Forked 27515 +(27515) found +[10981] Forked 27516 +(27516) found +[10980] Forked 27517 +(27517) found +[10979] Forked 27518 +(27518) found +[10978] Forked 27519 +(27519) found +[10977] Forked 27520 +(27520) found +[10976] Forked 27521 +(27521) found +[10975] Forked 27522 +(27522) found +[10974] Forked 27523 +(27523) found +[10973] Forked 27524 +(27524) found +[10972] Forked 27525 +(27525) found +[10971] Forked 27526 +(27526) found +[10970] Forked 27527 +(27527) found +[10969] Forked 27528 +(27528) found +[10968] Forked 27529 +(27529) found +[10967] Forked 27530 +(27530) found +[10966] Forked 27531 +(27531) found +[10965] Forked 27532 +(27532) found +[10964] Forked 27533 +(27533) found +[10963] Forked 27534 +(27534) found +[10962] Forked 27535 +(27535) found +[10961] Forked 27536 +(27536) found +[10960] Forked 27537 +[10959] Forked 27538 +(27537) found +(27538) found +[10958] Forked 27539 +[10957] Forked 27540 +(27539) found +(27540) found +[10956] Forked 27541 +[10955] Forked 27542 +(27541) found +(27542) found +[10954] Forked 27543 +[10953] Forked 27544 +(27543) found +(27544) found +[10952] Forked 27545 +[10951] Forked 27546 +(27545) found +(27546) found +[10950] Forked 27547 +[10949] Forked 27548 +(27547) found +(27548) found +[10948] Forked 27549 +[10947] Forked 27550 +(27549) found +(27550) found +[10946] Forked 27551 +[10945] Forked 27552 +(27551) found +(27552) found +[10944] Forked 27553 +[10943] Forked 27554 +(27553) found +(27554) found +[10942] Forked 27555 +[10941] Forked 27556 +(27555) found +(27556) found +[10940] Forked 27557 +[10939] Forked 27558 +(27557) found +(27558) found +[10938] Forked 27559 +[10937] Forked 27560 +(27559) found +(27560) found +[10936] Forked 27561 +[10935] Forked 27562 +(27561) found +(27562) found +[10934] Forked 27563 +[10933] Forked 27564 +(27563) found +(27564) found +[10932] Forked 27565 +[10931] Forked 27566 +(27565) found +(27566) found +[10930] Forked 27567 +[10929] Forked 27568 +(27567) found +(27568) found +[10928] Forked 27569 +[10927] Forked 27570 +(27569) found +(27570) found +[10926] Forked 27571 +[10925] Forked 27572 +(27571) found +(27572) found +[10924] Forked 27573 +[10923] Forked 27574 +(27573) found +(27574) found +[10922] Forked 27575 +[10921] Forked 27576 +(27575) found +(27576) found +[10920] Forked 27577 +[10919] Forked 27578 +(27577) found +(27578) found +[10918] Forked 27579 +[10917] Forked 27580 +(27579) found +(27580) found +[10916] Forked 27581 +[10915] Forked 27582 +(27581) found +(27582) found +[10914] Forked 27583 +(27583) found +[10913] Forked 27584 +(27584) found +[10912] Forked 27585 +(27585) found +[10911] Forked 27586 +(27586) found +[10910] Forked 27587 +(27587) found +[10909] Forked 27588 +(27588) found +[10908] Forked 27589 +(27589) found +[10907] Forked 27590 +(27590) found +[10906] Forked 27591 +(27591) found +[10905] Forked 27592 +(27592) found +[10904] Forked 27593 +(27593) found +[10903] Forked 27594 +(27594) found +[10902] Forked 27595 +(27595) found +[10901] Forked 27596 +(27596) found +[10900] Forked 27597 +(27597) found +[10899] Forked 27598 +(27598) found +[10898] Forked 27599 +(27599) found +[10897] Forked 27600 +(27600) found +[10896] Forked 27601 +(27601) found +[10895] Forked 27602 +(27602) found +[10894] Forked 27603 +(27603) found +[10893] Forked 27604 +(27604) found +[10892] Forked 27605 +(27605) found +[10891] Forked 27606 +(27606) found +[10890] Forked 27607 +(27607) found +[10889] Forked 27608 +(27608) found +[10888] Forked 27609 +(27609) found +[10887] Forked 27610 +(27610) found +[10886] Forked 27611 +(27611) found +[10885] Forked 27612 +(27612) found +[10884] Forked 27613 +(27613) found +[10883] Forked 27614 +(27614) found +[10882] Forked 27615 +(27615) found +[10881] Forked 27616 +(27616) found +[10880] Forked 27617 +(27617) found +[10879] Forked 27618 +[10878] Forked 27619 +(27618) found +(27619) found +[10877] Forked 27620 +[10876] Forked 27621 +(27620) found +(27621) found +[10875] Forked 27622 +[10874] Forked 27623 +(27622) found +(27623) found +[10873] Forked 27624 +[10872] Forked 27625 +(27624) found +(27625) found +[10871] Forked 27626 +[10870] Forked 27627 +(27626) found +(27627) found +[10869] Forked 27628 +[10868] Forked 27629 +(27628) found +(27629) found +[10867] Forked 27630 +[10866] Forked 27631 +(27630) found +(27631) found +[10865] Forked 27632 +[10864] Forked 27633 +(27632) found +(27633) found +[10863] Forked 27634 +[10862] Forked 27635 +(27634) found +(27635) found +[10861] Forked 27636 +[10860] Forked 27637 +(27636) found +(27637) found +[10859] Forked 27638 +[10858] Forked 27639 +(27638) found +(27639) found +[10857] Forked 27640 +[10856] Forked 27641 +(27640) found +(27641) found +[10855] Forked 27642 +[10854] Forked 27643 +(27642) found +(27643) found +[10853] Forked 27644 +[10852] Forked 27645 +(27644) found +(27645) found +[10851] Forked 27646 +[10850] Forked 27647 +(27646) found +(27647) found +[10849] Forked 27648 +[10848] Forked 27649 +(27648) found +(27649) found +[10847] Forked 27650 +[10846] Forked 27651 +(27650) found +(27651) found +[10845] Forked 27652 +[10844] Forked 27653 +(27652) found +(27653) found +[10843] Forked 27654 +[10842] Forked 27655 +(27654) found +(27655) found +[10841] Forked 27656 +[10840] Forked 27657 +(27656) found +(27657) found +[10839] Forked 27658 +[10838] Forked 27659 +(27658) found +(27659) found +[10837] Forked 27660 +[10836] Forked 27661 +(27660) found +(27661) found +[10835] Forked 27662 +[10834] Forked 27663 +(27662) found +(27663) found +[10833] Forked 27664 +[10832] Forked 27665 +(27664) found +(27665) found +[10831] Forked 27666 +[10830] Forked 27667 +(27666) found +(27667) found +[10829] Forked 27668 +[10828] Forked 27669 +(27668) found +(27669) found +[10827] Forked 27670 +[10826] Forked 27671 +(27670) found +(27671) found +[10825] Forked 27672 +[10824] Forked 27673 +(27672) found +(27673) found +[10823] Forked 27674 +[10822] Forked 27675 +(27674) found +(27675) found +[10821] Forked 27676 +[10820] Forked 27677 +(27676) found +(27677) found +[10819] Forked 27678 +[10818] Forked 27679 +(27678) found +(27679) found +[10817] Forked 27680 +[10816] Forked 27681 +(27680) found +(27681) found +[10815] Forked 27682 +[10814] Forked 27683 +(27682) found +(27683) found +[10813] Forked 27684 +[10812] Forked 27685 +(27684) found +(27685) found +[10811] Forked 27686 +[10810] Forked 27687 +(27686) found +(27687) found +[10809] Forked 27688 +[10808] Forked 27689 +(27688) found +(27689) found +[10807] Forked 27691 +[10806] Forked 27692 +(27691) found +(27692) found +[10805] Forked 27693 +[10804] Forked 27694 +(27693) found +(27694) found +[10803] Forked 27695 +[10802] Forked 27696 +(27695) found +(27696) found +[10801] Forked 27697 +[10800] Forked 27698 +(27697) found +(27698) found +[10799] Forked 27699 +[10798] Forked 27700 +(27699) found +(27700) found +[10797] Forked 27701 +[10796] Forked 27702 +(27701) found +(27702) found +[10795] Forked 27703 +[10794] Forked 27704 +(27703) found +(27704) found +[10793] Forked 27705 +[10792] Forked 27706 +(27705) found +(27706) found +[10791] Forked 27707 +[10790] Forked 27708 +(27707) found +(27708) found +[10789] Forked 27709 +(27709) found +[10788] Forked 27710 +(27710) found +[10787] Forked 27711 +(27711) found +[10786] Forked 27712 +(27712) found +[10785] Forked 27713 +(27713) found +[10784] Forked 27714 +(27714) found +[10783] Forked 27715 +(27715) found +[10782] Forked 27716 +(27716) found +[10781] Forked 27717 +(27717) found +[10780] Forked 27718 +(27718) found +[10779] Forked 27719 +(27719) found +[10778] Forked 27720 +(27720) found +[10777] Forked 27721 +(27721) found +[10776] Forked 27722 +(27722) found +[10775] Forked 27723 +(27723) found +[10774] Forked 27724 +(27724) found +[10773] Forked 27725 +(27725) found +[10772] Forked 27726 +(27726) found +[10771] Forked 27727 +(27727) found +[10770] Forked 27728 +(27728) found +[10769] Forked 27729 +(27729) found +[10768] Forked 27730 +(27730) found +[10767] Forked 27731 +(27731) found +[10766] Forked 27732 +(27732) found +[10765] Forked 27733 +(27733) found +[10764] Forked 27734 +(27734) found +[10763] Forked 27735 +(27735) found +[10762] Forked 27736 +(27736) found +[10761] Forked 27737 +(27737) found +[10760] Forked 27738 +(27738) found +[10759] Forked 27739 +(27739) found +[10758] Forked 27740 +(27740) found +[10757] Forked 27741 +(27741) found +[10756] Forked 27742 +(27742) found +[10755] Forked 27743 +(27743) found +[10754] Forked 27744 +(27744) found +[10753] Forked 27745 +[10752] Forked 27746 +(27745) found +(27746) found +[10751] Forked 27747 +[10750] Forked 27748 +(27747) found +(27748) found +[10749] Forked 27749 +(27749) found +[10748] Forked 27750 +[10747] Forked 27751 +(27750) found +(27751) found +[10746] Forked 27752 +[10745] Forked 27753 +(27752) found +(27753) found +[10744] Forked 27754 +[10743] Forked 27755 +(27754) found +(27755) found +[10742] Forked 27756 +[10741] Forked 27757 +(27756) found +(27757) found +[10740] Forked 27758 +[10739] Forked 27759 +(27758) found +(27759) found +[10738] Forked 27760 +[10737] Forked 27761 +(27760) found +(27761) found +[10736] Forked 27762 +[10735] Forked 27763 +(27762) found +(27763) found +[10734] Forked 27764 +[10733] Forked 27765 +(27764) found +(27765) found +[10732] Forked 27766 +[10731] Forked 27767 +(27766) found +(27767) found +[10730] Forked 27768 +[10729] Forked 27769 +(27768) found +(27769) found +[10728] Forked 27770 +[10727] Forked 27771 +(27770) found +(27771) found +[10726] Forked 27772 +[10725] Forked 27773 +(27772) found +(27773) found +[10724] Forked 27774 +[10723] Forked 27775 +(27774) found +(27775) found +[10722] Forked 27776 +[10721] Forked 27777 +(27776) found +(27777) found +[10720] Forked 27778 +[10719] Forked 27779 +(27778) found +(27779) found +[10718] Forked 27780 +[10717] Forked 27781 +(27780) found +(27781) found +[10716] Forked 27782 +[10715] Forked 27783 +(27782) found +(27783) found +[10714] Forked 27784 +[10713] Forked 27785 +(27784) found +(27785) found +[10712] Forked 27786 +[10711] Forked 27787 +(27786) found +(27787) found +[10710] Forked 27788 +[10709] Forked 27789 +(27788) found +(27789) found +[10708] Forked 27790 +[10707] Forked 27791 +(27790) found +(27791) found +[10706] Forked 27792 +[10705] Forked 27793 +(27792) found +(27793) found +[10704] Forked 27794 +[10703] Forked 27795 +(27794) found +(27795) found +[10702] Forked 27796 +[10701] Forked 27797 +(27796) found +(27797) found +[10700] Forked 27798 +(27798) found +[10699] Forked 27799 +[10698] Forked 27800 +(27799) found +(27800) found +[10697] Forked 27801 +[10696] Forked 27802 +(27801) found +(27802) found +[10695] Forked 27803 +[10694] Forked 27804 +(27803) found +(27804) found +[10693] Forked 27805 +[10692] Forked 27806 +(27805) found +(27806) found +[10691] Forked 27807 +[10690] Forked 27808 +(27807) found +(27808) found +[10689] Forked 27809 +[10688] Forked 27810 +(27809) found +(27810) found +[10687] Forked 27811 +[10686] Forked 27812 +(27811) found +(27812) found +[10685] Forked 27813 +[10684] Forked 27814 +(27813) found +(27814) found +[10683] Forked 27815 +[10682] Forked 27816 +(27815) found +(27816) found +[10681] Forked 27817 +[10680] Forked 27818 +(27817) found +(27818) found +[10679] Forked 27819 +[10678] Forked 27820 +(27819) found +(27820) found +[10677] Forked 27821 +[10676] Forked 27822 +(27821) found +(27822) found +[10675] Forked 27823 +[10674] Forked 27824 +(27823) found +(27824) found +[10673] Forked 27825 +[10672] Forked 27826 +(27825) found +(27826) found +[10671] Forked 27827 +[10670] Forked 27828 +(27827) found +(27828) found +[10669] Forked 27829 +[10668] Forked 27831 +(27829) found +(27831) found +[10667] Forked 27832 +[10666] Forked 27833 +(27832) found +(27833) found +[10665] Forked 27834 +[10664] Forked 27835 +(27834) found +(27835) found +[10663] Forked 27836 +(27836) found +[10662] Forked 27837 +(27837) found +[10661] Forked 27838 +(27838) found +[10660] Forked 27839 +(27839) found +[10659] Forked 27840 +(27840) found +[10658] Forked 27841 +(27841) found +[10657] Forked 27842 +(27842) found +[10656] Forked 27843 +(27843) found +[10655] Forked 27844 +(27844) found +[10654] Forked 27845 +(27845) found +[10653] Forked 27846 +(27846) found +[10652] Forked 27847 +(27847) found +[10651] Forked 27848 +(27848) found +[10650] Forked 27849 +(27849) found +[10649] Forked 27850 +(27850) found +[10648] Forked 27851 +(27851) found +[10647] Forked 27852 +(27852) found +[10646] Forked 27853 +(27853) found +[10645] Forked 27854 +(27854) found +[10644] Forked 27855 +(27855) found +[10643] Forked 27856 +(27856) found +[10642] Forked 27857 +(27857) found +[10641] Forked 27858 +(27858) found +[10640] Forked 27859 +(27859) found +[10639] Forked 27860 +(27860) found +[10638] Forked 27861 +(27861) found +[10637] Forked 27862 +(27862) found +[10636] Forked 27863 +(27863) found +[10635] Forked 27864 +(27864) found +[10634] Forked 27865 +(27865) found +[10633] Forked 27866 +(27866) found +[10632] Forked 27867 +(27867) found +[10631] Forked 27868 +(27868) found +[10630] Forked 27869 +(27869) found +[10629] Forked 27870 +[10628] Forked 27871 +(27870) found +(27871) found +[10627] Forked 27872 +[10626] Forked 27873 +(27872) found +(27873) found +[10625] Forked 27874 +[10624] Forked 27875 +(27874) found +(27875) found +[10623] Forked 27876 +[10622] Forked 27877 +(27876) found +(27877) found +[10621] Forked 27878 +[10620] Forked 27879 +(27878) found +(27879) found +[10619] Forked 27880 +[10618] Forked 27881 +(27880) found +(27881) found +[10617] Forked 27882 +[10616] Forked 27883 +(27882) found +(27883) found +[10615] Forked 27884 +[10614] Forked 27885 +(27884) found +(27885) found +[10613] Forked 27886 +[10612] Forked 27887 +(27886) found +(27887) found +[10611] Forked 27888 +[10610] Forked 27889 +(27888) found +(27889) found +[10609] Forked 27890 +[10608] Forked 27891 +(27890) found +(27891) found +[10607] Forked 27892 +[10606] Forked 27893 +(27892) found +(27893) found +[10605] Forked 27894 +[10604] Forked 27895 +(27894) found +(27895) found +[10603] Forked 27896 +[10602] Forked 27897 +(27896) found +(27897) found +[10601] Forked 27898 +[10600] Forked 27899 +(27898) found +(27899) found +[10599] Forked 27900 +[10598] Forked 27901 +(27900) found +(27901) found +[10597] Forked 27902 +[10596] Forked 27903 +(27902) found +(27903) found +[10595] Forked 27904 +[10594] Forked 27905 +(27904) found +(27905) found +[10593] Forked 27906 +[10592] Forked 27907 +(27906) found +(27907) found +[10591] Forked 27908 +[10590] Forked 27909 +(27908) found +(27909) found +[10589] Forked 27910 +[10588] Forked 27911 +(27910) found +(27911) found +[10587] Forked 27912 +[10586] Forked 27913 +(27912) found +(27913) found +[10585] Forked 27914 +(27914) found +[10584] Forked 27915 +[10583] Forked 27916 +(27915) found +(27916) found +[10582] Forked 27917 +[10581] Forked 27918 +(27917) found +(27918) found +[10580] Forked 27919 +(27919) found +[10579] Forked 27920 +[10578] Forked 27921 +(27920) found +(27921) found +[10577] Forked 27922 +[10576] Forked 27923 +(27923) found +(27922) found +[10575] Forked 27924 +(27924) found +[10574] Forked 27925 +(27925) found +[10573] Forked 27926 +(27926) found +[10572] Forked 27927 +(27927) found +[10571] Forked 27928 +(27928) found +[10570] Forked 27929 +(27929) found +[10569] Forked 27930 +(27930) found +[10568] Forked 27931 +(27931) found +[10567] Forked 27932 +(27932) found +[10566] Forked 27933 +(27933) found +[10565] Forked 27934 +(27934) found +[10564] Forked 27935 +(27935) found +[10563] Forked 27936 +(27936) found +[10562] Forked 27937 +(27937) found +[10561] Forked 27938 +(27938) found +[10560] Forked 27939 +(27939) found +[10559] Forked 27940 +(27940) found +[10558] Forked 27941 +(27941) found +[10557] Forked 27942 +(27942) found +[10556] Forked 27943 +(27943) found +[10555] Forked 27944 +(27944) found +[10554] Forked 27945 +(27945) found +[10553] Forked 27946 +(27946) found +[10552] Forked 27947 +(27947) found +[10551] Forked 27948 +(27948) found +[10550] Forked 27949 +(27949) found +[10549] Forked 27950 +(27950) found +[10548] Forked 27951 +(27951) found +[10547] Forked 27952 +(27952) found +[10546] Forked 27953 +(27953) found +[10545] Forked 27954 +(27954) found +[10544] Forked 27955 +(27955) found +[10543] Forked 27956 +(27956) found +[10542] Forked 27957 +(27957) found +[10541] Forked 27958 +(27958) found +[10540] Forked 27959 +(27959) found +[10539] Forked 27960 +(27960) found +[10538] Forked 27961 +(27961) found +[10537] Forked 27962 +(27962) found +[10536] Forked 27963 +(27963) found +[10535] Forked 27964 +(27964) found +[10534] Forked 27965 +(27965) found +[10533] Forked 27966 +(27966) found +[10532] Forked 27967 +(27967) found +[10531] Forked 27968 +(27968) found +[10530] Forked 27969 +(27969) found +[10529] Forked 27970 +(27970) found +[10528] Forked 27971 +(27971) found +[10527] Forked 27972 +(27972) found +[10526] Forked 27973 +(27973) found +[10525] Forked 27974 +(27974) found +[10524] Forked 27975 +(27975) found +[10523] Forked 27976 +(27976) found +[10522] Forked 27977 +(27977) found +[10521] Forked 27978 +(27978) found +[10520] Forked 27979 +(27979) found +[10519] Forked 27980 +(27980) found +[10518] Forked 27981 +(27981) found +[10517] Forked 27982 +(27982) found +[10516] Forked 27983 +(27983) found +[10515] Forked 27984 +(27984) found +[10514] Forked 27985 +(27985) found +[10513] Forked 27986 +[10512] Forked 27988 +(27986) found +(27988) found +[10511] Forked 27989 +[10510] Forked 27990 +(27989) found +(27990) found +[10509] Forked 27991 +[10508] Forked 27992 +(27991) found +(27992) found +[10507] Forked 27993 +[10506] Forked 27994 +(27993) found +(27994) found +[10505] Forked 27995 +[10504] Forked 27996 +(27995) found +(27996) found +[10503] Forked 27997 +[10502] Forked 27998 +(27997) found +(27998) found +[10501] Forked 27999 +[10500] Forked 28000 +(27999) found +(28000) found +[10499] Forked 28001 +[10498] Forked 28002 +(28001) found +(28002) found +[10497] Forked 28003 +[10496] Forked 28004 +(28003) found +(28004) found +[10495] Forked 28005 +[10494] Forked 28006 +(28005) found +(28006) found +[10493] Forked 28007 +[10492] Forked 28008 +(28007) found +(28008) found +[10491] Forked 28009 +[10490] Forked 28010 +(28009) found +(28010) found +[10489] Forked 28011 +[10488] Forked 28012 +(28011) found +(28012) found +[10487] Forked 28013 +[10486] Forked 28014 +(28013) found +(28014) found +[10485] Forked 28015 +[10484] Forked 28016 +(28015) found +(28016) found +[10483] Forked 28017 +[10482] Forked 28018 +(28017) found +(28018) found +[10481] Forked 28019 +[10480] Forked 28020 +(28019) found +(28020) found +[10479] Forked 28021 +[10478] Forked 28022 +(28021) found +(28022) found +[10477] Forked 28023 +[10476] Forked 28024 +(28023) found +(28024) found +[10475] Forked 28025 +[10474] Forked 28026 +(28025) found +(28026) found +[10473] Forked 28027 +[10472] Forked 28028 +(28027) found +(28028) found +[10471] Forked 28029 +[10470] Forked 28030 +(28029) found +(28030) found +[10469] Forked 28031 +(28031) found +[10468] Forked 28032 +(28032) found +[10467] Forked 28033 +(28033) found +[10466] Forked 28034 +(28034) found +[10465] Forked 28035 +(28035) found +[10464] Forked 28036 +(28036) found +[10463] Forked 28037 +(28037) found +[10462] Forked 28038 +(28038) found +[10461] Forked 28039 +(28039) found +[10460] Forked 28040 +(28040) found +[10459] Forked 28041 +(28041) found +[10458] Forked 28042 +(28042) found +[10457] Forked 28043 +(28043) found +[10456] Forked 28044 +(28044) found +[10455] Forked 28045 +(28045) found +[10454] Forked 28047 +(28047) found +[10453] Forked 28048 +(28048) found +[10452] Forked 28049 +(28049) found +[10451] Forked 28050 +(28050) found +[10450] Forked 28051 +(28051) found +[10449] Forked 28052 +(28052) found +[10448] Forked 28053 +(28053) found +[10447] Forked 28054 +(28054) found +[10446] Forked 28055 +(28055) found +[10445] Forked 28056 +(28056) found +[10444] Forked 28057 +(28057) found +[10443] Forked 28058 +(28058) found +[10442] Forked 28059 +(28059) found +[10441] Forked 28060 +(28060) found +[10440] Forked 28061 +(28061) found +[10439] Forked 28062 +(28062) found +[10438] Forked 28063 +(28063) found +[10437] Forked 28064 +(28064) found +[10436] Forked 28065 +(28065) found +[10435] Forked 28066 +(28066) found +[10434] Forked 28067 +(28067) found +[10433] Forked 28068 +[10432] Forked 28069 +(28068) found +(28069) found +[10431] Forked 28070 +[10430] Forked 28071 +(28070) found +(28071) found +[10429] Forked 28072 +[10428] Forked 28073 +(28072) found +(28073) found +[10427] Forked 28074 +[10426] Forked 28075 +(28074) found +(28075) found +[10425] Forked 28076 +[10424] Forked 28077 +(28076) found +(28077) found +[10423] Forked 28078 +[10422] Forked 28079 +(28078) found +(28079) found +[10421] Forked 28080 +[10420] Forked 28081 +(28080) found +(28081) found +[10419] Forked 28082 +[10418] Forked 28083 +(28082) found +(28083) found +[10417] Forked 28084 +[10416] Forked 28085 +(28084) found +(28085) found +[10415] Forked 28086 +[10414] Forked 28087 +(28086) found +(28087) found +[10413] Forked 28088 +[10412] Forked 28089 +(28088) found +(28089) found +[10411] Forked 28090 +[10410] Forked 28091 +(28090) found +(28091) found +[10409] Forked 28092 +[10408] Forked 28093 +(28092) found +(28093) found +[10407] Forked 28094 +[10406] Forked 28095 +(28094) found +(28095) found +[10405] Forked 28096 +[10404] Forked 28097 +(28096) found +(28097) found +[10403] Forked 28098 +[10402] Forked 28100 +(28098) found +(28100) found +[10401] Forked 28101 +(28101) found +[10400] Forked 28102 +(28102) found +[10399] Forked 28103 +(28103) found +[10398] Forked 28104 +(28104) found +[10397] Forked 28105 +(28105) found +[10396] Forked 28106 +(28106) found +[10395] Forked 28107 +(28107) found +[10394] Forked 28108 +(28108) found +[10393] Forked 28109 +(28109) found +[10392] Forked 28110 +(28110) found +[10391] Forked 28111 +(28111) found +[10390] Forked 28112 +(28112) found +[10389] Forked 28113 +(28113) found +[10388] Forked 28114 +(28114) found +[10387] Forked 28115 +(28115) found +[10386] Forked 28116 +(28116) found +[10385] Forked 28117 +(28117) found +[10384] Forked 28118 +(28118) found +[10383] Forked 28119 +(28119) found +[10382] Forked 28120 +(28120) found +[10381] Forked 28121 +(28121) found +[10380] Forked 28122 +(28122) found +[10379] Forked 28123 +(28123) found +[10378] Forked 28124 +(28124) found +[10377] Forked 28125 +(28125) found +[10376] Forked 28126 +(28126) found +[10375] Forked 28127 +(28127) found +[10374] Forked 28128 +(28128) found +[10373] Forked 28129 +(28129) found +[10372] Forked 28130 +(28130) found +[10371] Forked 28131 +(28131) found +[10370] Forked 28132 +(28132) found +[10369] Forked 28133 +(28133) found +[10368] Forked 28134 +(28134) found +[10367] Forked 28135 +(28135) found +[10366] Forked 28136 +(28136) found +[10365] Forked 28137 +(28137) found +[10364] Forked 28138 +(28138) found +[10363] Forked 28139 +(28139) found +[10362] Forked 28140 +(28140) found +[10361] Forked 28141 +(28141) found +[10360] Forked 28142 +(28142) found +[10359] Forked 28143 +(28143) found +[10358] Forked 28144 +(28144) found +[10357] Forked 28145 +(28145) found +[10356] Forked 28146 +(28146) found +[10355] Forked 28147 +(28147) found +[10354] Forked 28148 +(28148) found +[10353] Forked 28149 +(28149) found +[10352] Forked 28150 +(28150) found +[10351] Forked 28151 +(28151) found +[10350] Forked 28152 +(28152) found +[10349] Forked 28153 +(28153) found +[10348] Forked 28154 +(28154) found +[10347] Forked 28155 +(28155) found +[10346] Forked 28156 +(28156) found +[10345] Forked 28157 +(28157) found +[10344] Forked 28158 +(28158) found +[10343] Forked 28159 +(28159) found +[10342] Forked 28160 +(28160) found +[10341] Forked 28161 +(28161) found +[10340] Forked 28162 +(28162) found +[10339] Forked 28163 +(28163) found +[10338] Forked 28164 +(28164) found +[10337] Forked 28165 +(28165) found +[10336] Forked 28166 +(28166) found +[10335] Forked 28167 +(28167) found +[10334] Forked 28168 +(28168) found +[10333] Forked 28169 +(28169) found +[10332] Forked 28170 +(28170) found +[10331] Forked 28171 +(28171) found +[10330] Forked 28172 +(28172) found +[10329] Forked 28173 +(28173) found +[10328] Forked 28174 +(28174) found +[10327] Forked 28175 +(28175) found +[10326] Forked 28176 +(28176) found +[10325] Forked 28177 +(28177) found +[10324] Forked 28178 +(28178) found +[10323] Forked 28179 +(28179) found +[10322] Forked 28180 +(28180) found +[10321] Forked 28181 +(28181) found +[10320] Forked 28182 +(28182) found +[10319] Forked 28183 +[10318] Forked 28184 +(28183) found +(28184) found +[10317] Forked 28185 +[10316] Forked 28186 +(28185) found +(28186) found +[10315] Forked 28187 +[10314] Forked 28188 +(28187) found +(28188) found +[10313] Forked 28189 +[10312] Forked 28190 +(28189) found +(28190) found +[10311] Forked 28191 +[10310] Forked 28192 +(28191) found +(28192) found +[10309] Forked 28193 +[10308] Forked 28194 +(28193) found +(28194) found +[10307] Forked 28195 +[10306] Forked 28196 +(28195) found +(28196) found +[10305] Forked 28197 +[10304] Forked 28198 +(28197) found +(28198) found +[10303] Forked 28199 +[10302] Forked 28200 +(28199) found +(28200) found +[10301] Forked 28201 +[10300] Forked 28202 +(28201) found +(28202) found +[10299] Forked 28203 +[10298] Forked 28204 +(28203) found +(28204) found +[10297] Forked 28205 +[10296] Forked 28206 +(28205) found +(28206) found +[10295] Forked 28207 +[10294] Forked 28208 +(28207) found +(28208) found +[10293] Forked 28209 +[10292] Forked 28210 +(28209) found +(28210) found +[10291] Forked 28211 +[10290] Forked 28212 +(28211) found +(28212) found +[10289] Forked 28213 +[10288] Forked 28214 +(28213) found +(28214) found +[10287] Forked 28215 +[10286] Forked 28216 +(28215) found +(28216) found +[10285] Forked 28217 +[10284] Forked 28218 +(28217) found +(28218) found +[10283] Forked 28219 +[10282] Forked 28220 +(28219) found +(28220) found +[10281] Forked 28221 +[10280] Forked 28222 +(28221) found +(28222) found +[10279] Forked 28223 +[10278] Forked 28224 +(28223) found +(28224) found +[10277] Forked 28225 +[10276] Forked 28226 +(28225) found +(28226) found +[10275] Forked 28227 +[10274] Forked 28228 +(28227) found +(28228) found +[10273] Forked 28229 +(28229) found +[10272] Forked 28230 +(28230) found +[10271] Forked 28231 +(28231) found +[10270] Forked 28232 +(28232) found +[10269] Forked 28233 +(28233) found +[10268] Forked 28234 +(28234) found +[10267] Forked 28235 +(28235) found +[10266] Forked 28236 +(28236) found +[10265] Forked 28237 +(28237) found +[10264] Forked 28238 +(28238) found +[10263] Forked 28239 +(28239) found +[10262] Forked 28240 +(28240) found +[10261] Forked 28241 +(28241) found +[10260] Forked 28242 +(28242) found +[10259] Forked 28243 +(28243) found +[10258] Forked 28244 +(28244) found +[10257] Forked 28245 +(28245) found +[10256] Forked 28246 +(28246) found +[10255] Forked 28247 +(28247) found +[10254] Forked 28248 +(28248) found +[10253] Forked 28249 +(28249) found +[10252] Forked 28250 +(28250) found +[10251] Forked 28251 +(28251) found +[10250] Forked 28252 +(28252) found +[10249] Forked 28253 +(28253) found +[10248] Forked 28254 +(28254) found +[10247] Forked 28255 +(28255) found +[10246] Forked 28256 +(28256) found +[10245] Forked 28257 +(28257) found +[10244] Forked 28258 +(28258) found +[10243] Forked 28259 +(28259) found +[10242] Forked 28260 +(28260) found +[10241] Forked 28261 +(28261) found +[10240] Forked 28262 +(28262) found +[10239] Forked 28263 +(28263) found +[10238] Forked 28264 +(28264) found +[10237] Forked 28265 +[10236] Forked 28266 +(28265) found +(28266) found +[10235] Forked 28267 +[10234] Forked 28268 +(28267) found +(28268) found +[10233] Forked 28269 +[10232] Forked 28270 +(28269) found +(28270) found +[10231] Forked 28271 +[10230] Forked 28272 +(28271) found +(28272) found +[10229] Forked 28273 +[10228] Forked 28274 +(28273) found +(28274) found +[10227] Forked 28275 +[10226] Forked 28276 +(28275) found +(28276) found +[10225] Forked 28277 +(28277) found +[10224] Forked 28278 +(28278) found +[10223] Forked 28279 +(28279) found +[10222] Forked 28280 +(28280) found +[10221] Forked 28281 +(28281) found +[10220] Forked 28282 +(28282) found +[10219] Forked 28283 +(28283) found +[10218] Forked 28284 +[10217] Forked 28285 +(28284) found +(28285) found +[10216] Forked 28286 +[10215] Forked 28287 +(28286) found +(28287) found +[10214] Forked 28288 +[10213] Forked 28289 +(28288) found +(28289) found +[10212] Forked 28290 +[10211] Forked 28291 +(28290) found +(28291) found +[10210] Forked 28292 +[10209] Forked 28293 +(28292) found +(28293) found +[10208] Forked 28294 +[10207] Forked 28295 +(28294) found +(28295) found +[10206] Forked 28296 +[10205] Forked 28297 +(28296) found +(28297) found +[10204] Forked 28298 +[10203] Forked 28299 +(28298) found +(28299) found +[10202] Forked 28300 +[10201] Forked 28301 +(28300) found +(28301) found +[10200] Forked 28302 +[10199] Forked 28303 +(28302) found +(28303) found +[10198] Forked 28304 +[10197] Forked 28305 +(28304) found +(28305) found +[10196] Forked 28306 +[10195] Forked 28307 +(28306) found +(28307) found +[10194] Forked 28308 +[10193] Forked 28309 +(28308) found +(28309) found +[10192] Forked 28310 +[10191] Forked 28311 +(28310) found +(28311) found +[10190] Forked 28312 +[10189] Forked 28313 +(28312) found +(28313) found +[10188] Forked 28314 +[10187] Forked 28315 +(28314) found +(28315) found +[10186] Forked 28316 +[10185] Forked 28317 +(28316) found +(28317) found +[10184] Forked 28318 +[10183] Forked 28319 +(28318) found +(28319) found +[10182] Forked 28320 +[10181] Forked 28321 +(28320) found +(28321) found +[10180] Forked 28322 +[10179] Forked 28323 +(28322) found +(28323) found +[10178] Forked 28324 +[10177] Forked 28325 +(28324) found +(28325) found +[10176] Forked 28326 +[10175] Forked 28327 +(28326) found +(28327) found +[10174] Forked 28328 +[10173] Forked 28329 +(28328) found +(28329) found +[10172] Forked 28330 +[10171] Forked 28331 +(28330) found +(28331) found +[10170] Forked 28332 +[10169] Forked 28333 +(28332) found +(28333) found +[10168] Forked 28334 +[10167] Forked 28335 +(28334) found +(28335) found +[10166] Forked 28336 +[10165] Forked 28337 +(28336) found +(28337) found +[10164] Forked 28338 +[10163] Forked 28339 +(28338) found +(28339) found +[10162] Forked 28340 +[10161] Forked 28341 +(28340) found +(28341) found +[10160] Forked 28342 +[10159] Forked 28343 +(28342) found +(28343) found +[10158] Forked 28344 +[10157] Forked 28345 +(28344) found +(28345) found +[10156] Forked 28346 +[10155] Forked 28347 +(28346) found +(28347) found +[10154] Forked 28348 +[10153] Forked 28349 +(28348) found +(28349) found +[10152] Forked 28350 +[10151] Forked 28351 +(28350) found +(28351) found +[10150] Forked 28352 +(28352) found +[10149] Forked 28353 +(28353) found +[10148] Forked 28354 +(28354) found +[10147] Forked 28355 +(28355) found +[10146] Forked 28356 +(28356) found +[10145] Forked 28357 +(28357) found +[10144] Forked 28358 +(28358) found +[10143] Forked 28359 +(28359) found +[10142] Forked 28360 +(28360) found +[10141] Forked 28361 +(28361) found +[10140] Forked 28362 +(28362) found +[10139] Forked 28363 +(28363) found +[10138] Forked 28364 +(28364) found +[10137] Forked 28365 +(28365) found +[10136] Forked 28366 +(28366) found +[10135] Forked 28367 +(28367) found +[10134] Forked 28368 +(28368) found +[10133] Forked 28369 +(28369) found +[10132] Forked 28370 +(28370) found +[10131] Forked 28371 +(28371) found +[10130] Forked 28372 +(28372) found +[10129] Forked 28373 +(28373) found +[10128] Forked 28374 +(28374) found +[10127] Forked 28375 +(28375) found +[10126] Forked 28376 +(28376) found +[10125] Forked 28377 +(28377) found +[10124] Forked 28378 +(28378) found +[10123] Forked 28379 +(28379) found +[10122] Forked 28380 +(28380) found +[10121] Forked 28381 +(28381) found +[10120] Forked 28382 +(28382) found +[10119] Forked 28383 +(28383) found +[10118] Forked 28384 +(28384) found +[10117] Forked 28385 +(28385) found +[10116] Forked 28386 +(28386) found +[10115] Forked 28387 +(28387) found +[10114] Forked 28388 +[10113] Forked 28389 +(28388) found +(28389) found +[10112] Forked 28390 +[10111] Forked 28391 +(28390) found +(28391) found +[10110] Forked 28392 +[10109] Forked 28393 +(28392) found +(28393) found +[10108] Forked 28394 +[10107] Forked 28395 +(28394) found +(28395) found +[10106] Forked 28396 +[10105] Forked 28397 +(28396) found +(28397) found +[10104] Forked 28398 +[10103] Forked 28399 +(28398) found +(28399) found +[10102] Forked 28400 +[10101] Forked 28401 +(28400) found +(28401) found +[10100] Forked 28402 +[10099] Forked 28403 +(28402) found +(28403) found +[10098] Forked 28404 +[10097] Forked 28405 +(28404) found +(28405) found +[10096] Forked 28406 +[10095] Forked 28407 +(28406) found +(28407) found +[10094] Forked 28408 +[10093] Forked 28409 +(28408) found +(28409) found +[10092] Forked 28410 +[10091] Forked 28411 +(28410) found +(28411) found +[10090] Forked 28412 +[10089] Forked 28413 +(28412) found +(28413) found +[10088] Forked 28414 +[10087] Forked 28415 +(28414) found +(28415) found +[10086] Forked 28416 +[10085] Forked 28417 +(28416) found +(28417) found +[10084] Forked 28418 +[10083] Forked 28419 +(28418) found +(28419) found +[10082] Forked 28420 +[10081] Forked 28421 +(28420) found +(28421) found +[10080] Forked 28422 +[10079] Forked 28423 +(28422) found +(28423) found +[10078] Forked 28424 +[10077] Forked 28425 +(28424) found +(28425) found +[10076] Forked 28426 +[10075] Forked 28427 +(28426) found +(28427) found +[10074] Forked 28428 +[10073] Forked 28429 +(28428) found +(28429) found +[10072] Forked 28430 +[10071] Forked 28431 +(28430) found +(28431) found +[10070] Forked 28432 +[10069] Forked 28433 +(28432) found +(28433) found +[10068] Forked 28434 +[10067] Forked 28435 +(28434) found +(28435) found +[10066] Forked 28436 +[10065] Forked 28437 +(28436) found +(28437) found +[10064] Forked 28438 +[10063] Forked 28439 +(28438) found +(28439) found +[10062] Forked 28440 +[10061] Forked 28441 +(28440) found +(28441) found +[10060] Forked 28442 +[10059] Forked 28443 +(28442) found +(28443) found +[10058] Forked 28444 +[10057] Forked 28445 +(28444) found +(28445) found +[10056] Forked 28446 +[10055] Forked 28447 +(28446) found +(28447) found +[10054] Forked 28448 +[10053] Forked 28449 +(28448) found +(28449) found +[10052] Forked 28450 +[10051] Forked 28452 +(28450) found +(28452) found +[10050] Forked 28453 +(28453) found +[10049] Forked 28454 +(28454) found +[10048] Forked 28455 +(28455) found +[10047] Forked 28456 +(28456) found +[10046] Forked 28457 +(28457) found +[10045] Forked 28458 +(28458) found +[10044] Forked 28459 +(28459) found +[10043] Forked 28460 +(28460) found +[10042] Forked 28461 +(28461) found +[10041] Forked 28462 +(28462) found +[10040] Forked 28463 +(28463) found +[10039] Forked 28464 +(28464) found +[10038] Forked 28465 +(28465) found +[10037] Forked 28466 +(28466) found +[10036] Forked 28467 +(28467) found +[10035] Forked 28468 +(28468) found +[10034] Forked 28469 +(28469) found +[10033] Forked 28470 +(28470) found +[10032] Forked 28471 +(28471) found +[10031] Forked 28472 +(28472) found +[10030] Forked 28473 +(28473) found +[10029] Forked 28474 +(28474) found +[10028] Forked 28475 +(28475) found +[10027] Forked 28476 +(28476) found +[10026] Forked 28477 +(28477) found +[10025] Forked 28478 +(28478) found +[10024] Forked 28479 +(28479) found +[10023] Forked 28480 +(28480) found +[10022] Forked 28481 +(28481) found +[10021] Forked 28482 +(28482) found +[10020] Forked 28483 +(28483) found +[10019] Forked 28484 +(28484) found +[10018] Forked 28485 +(28485) found +[10017] Forked 28486 +(28486) found +[10016] Forked 28487 +(28487) found +[10015] Forked 28488 +(28488) found +[10014] Forked 28489 +(28489) found +[10013] Forked 28490 +(28490) found +[10012] Forked 28491 +(28491) found +[10011] Forked 28492 +(28492) found +[10010] Forked 28493 +(28493) found +[10009] Forked 28494 +(28494) found +[10008] Forked 28495 +(28495) found +[10007] Forked 28496 +(28496) found +[10006] Forked 28497 +(28497) found +[10005] Forked 28498 +(28498) found +[10004] Forked 28499 +(28499) found +[10003] Forked 28500 +(28500) found +[10002] Forked 28501 +(28501) found +[10001] Forked 28502 +(28502) found +[10000] Forked 28503 +(28503) found +[9999] Forked 28504 +(28504) found +[9998] Forked 28505 +(28505) found +[9997] Forked 28506 +(28506) found +[9996] Forked 28507 +(28507) found +[9995] Forked 28508 +(28508) found +[9994] Forked 28509 +(28509) found +[9993] Forked 28510 +(28510) found +[9992] Forked 28511 +(28511) found +[9991] Forked 28512 +(28512) found +[9990] Forked 28513 +(28513) found +[9989] Forked 28514 +(28514) found +[9988] Forked 28515 +(28515) found +[9987] Forked 28516 +(28516) found +[9986] Forked 28517 +(28517) found +[9985] Forked 28518 +(28518) found +[9984] Forked 28519 +(28519) found +[9983] Forked 28520 +(28520) found +[9982] Forked 28521 +(28521) found +[9981] Forked 28522 +(28522) found +[9980] Forked 28523 +(28523) found +[9979] Forked 28524 +(28524) found +[9978] Forked 28525 +(28525) found +[9977] Forked 28526 +(28526) found +[9976] Forked 28527 +(28527) found +[9975] Forked 28528 +(28528) found +[9974] Forked 28529 +(28529) found +[9973] Forked 28530 +(28530) found +[9972] Forked 28531 +(28531) found +[9971] Forked 28532 +(28532) found +[9970] Forked 28533 +(28533) found +[9969] Forked 28534 +(28534) found +[9968] Forked 28535 +(28535) found +[9967] Forked 28536 +(28536) found +[9966] Forked 28537 +(28537) found +[9965] Forked 28538 +(28538) found +[9964] Forked 28539 +(28539) found +[9963] Forked 28540 +(28540) found +[9962] Forked 28541 +(28541) found +[9961] Forked 28542 +[9960] Forked 28543 +(28542) found +(28543) found +[9959] Forked 28544 +[9958] Forked 28545 +(28544) found +(28545) found +[9957] Forked 28546 +[9956] Forked 28547 +(28546) found +(28547) found +[9955] Forked 28548 +[9954] Forked 28549 +(28548) found +(28549) found +[9953] Forked 28550 +[9952] Forked 28551 +(28550) found +(28551) found +[9951] Forked 28552 +[9950] Forked 28553 +(28552) found +(28553) found +[9949] Forked 28554 +[9948] Forked 28555 +(28554) found +(28555) found +[9947] Forked 28556 +[9946] Forked 28557 +(28556) found +(28557) found +[9945] Forked 28558 +[9944] Forked 28559 +(28558) found +(28559) found +[9943] Forked 28560 +[9942] Forked 28561 +(28560) found +(28561) found +[9941] Forked 28562 +[9940] Forked 28563 +(28562) found +(28563) found +[9939] Forked 28564 +[9938] Forked 28565 +(28564) found +(28565) found +[9937] Forked 28566 +[9936] Forked 28567 +(28566) found +(28567) found +[9935] Forked 28568 +[9934] Forked 28569 +(28568) found +(28569) found +[9933] Forked 28570 +[9932] Forked 28572 +(28570) found +(28572) found +[9931] Forked 28573 +(28573) found +[9930] Forked 28574 +(28574) found +[9929] Forked 28575 +(28575) found +[9928] Forked 28576 +(28576) found +[9927] Forked 28577 +(28577) found +[9926] Forked 28578 +(28578) found +[9925] Forked 28579 +(28579) found +[9924] Forked 28580 +(28580) found +[9923] Forked 28581 +(28581) found +[9922] Forked 28582 +(28582) found +[9921] Forked 28583 +(28583) found +[9920] Forked 28584 +(28584) found +[9919] Forked 28585 +(28585) found +[9918] Forked 28586 +(28586) found +[9917] Forked 28587 +(28587) found +[9916] Forked 28588 +(28588) found +[9915] Forked 28589 +(28589) found +[9914] Forked 28590 +(28590) found +[9913] Forked 28591 +(28591) found +[9912] Forked 28592 +(28592) found +[9911] Forked 28593 +(28593) found +[9910] Forked 28594 +(28594) found +[9909] Forked 28595 +(28595) found +[9908] Forked 28596 +(28596) found +[9907] Forked 28597 +(28597) found +[9906] Forked 28598 +(28598) found +[9905] Forked 28599 +(28599) found +[9904] Forked 28600 +(28600) found +[9903] Forked 28601 +(28601) found +[9902] Forked 28602 +(28602) found +[9901] Forked 28603 +(28603) found +[9900] Forked 28604 +(28604) found +[9899] Forked 28605 +(28605) found +[9898] Forked 28606 +(28606) found +[9897] Forked 28607 +(28607) found +[9896] Forked 28608 +(28608) found +[9895] Forked 28609 +(28609) found +[9894] Forked 28610 +(28610) found +[9893] Forked 28611 +(28611) found +[9892] Forked 28612 +(28612) found +[9891] Forked 28613 +(28613) found +[9890] Forked 28614 +(28614) found +[9889] Forked 28615 +(28615) found +[9888] Forked 28616 +(28616) found +[9887] Forked 28617 +(28617) found +[9886] Forked 28618 +(28618) found +[9885] Forked 28619 +(28619) found +[9884] Forked 28620 +(28620) found +[9883] Forked 28621 +(28621) found +[9882] Forked 28622 +(28622) found +[9881] Forked 28623 +(28623) found +[9880] Forked 28624 +(28624) found +[9879] Forked 28625 +(28625) found +[9878] Forked 28626 +(28626) found +[9877] Forked 28627 +(28627) found +[9876] Forked 28628 +(28628) found +[9875] Forked 28629 +(28629) found +[9874] Forked 28630 +(28630) found +[9873] Forked 28631 +(28631) found +[9872] Forked 28632 +(28632) found +[9871] Forked 28633 +(28633) found +[9870] Forked 28634 +(28634) found +[9869] Forked 28635 +(28635) found +[9868] Forked 28636 +(28636) found +[9867] Forked 28637 +(28637) found +[9866] Forked 28638 +(28638) found +[9865] Forked 28639 +(28639) found +[9864] Forked 28640 +(28640) found +[9863] Forked 28641 +(28641) found +[9862] Forked 28642 +(28642) found +[9861] Forked 28643 +(28643) found +[9860] Forked 28644 +(28644) found +[9859] Forked 28645 +(28645) found +[9858] Forked 28646 +(28646) found +[9857] Forked 28647 +(28647) found +[9856] Forked 28648 +(28648) found +[9855] Forked 28649 +(28649) found +[9854] Forked 28650 +(28650) found +[9853] Forked 28651 +(28651) found +[9852] Forked 28652 +(28652) found +[9851] Forked 28653 +(28653) found +[9850] Forked 28654 +(28654) found +[9849] Forked 28655 +[9848] Forked 28656 +(28655) found +(28656) found +[9847] Forked 28657 +[9846] Forked 28658 +(28657) found +(28658) found +[9845] Forked 28659 +[9844] Forked 28660 +(28659) found +(28660) found +[9843] Forked 28661 +[9842] Forked 28662 +(28661) found +(28662) found +[9841] Forked 28663 +[9840] Forked 28664 +(28663) found +(28664) found +[9839] Forked 28665 +[9838] Forked 28666 +(28665) found +(28666) found +[9837] Forked 28667 +[9836] Forked 28668 +(28667) found +(28668) found +[9835] Forked 28669 +[9834] Forked 28670 +(28669) found +(28670) found +[9833] Forked 28671 +[9832] Forked 28672 +(28671) found +(28672) found +[9831] Forked 28673 +[9830] Forked 28674 +(28673) found +(28674) found +[9829] Forked 28675 +[9828] Forked 28676 +(28675) found +(28676) found +[9827] Forked 28677 +[9826] Forked 28678 +(28677) found +(28678) found +[9825] Forked 28679 +[9824] Forked 28680 +(28679) found +(28680) found +[9823] Forked 28681 +[9822] Forked 28682 +(28681) found +(28682) found +[9821] Forked 28683 +[9820] Forked 28684 +(28683) found +(28684) found +[9819] Forked 28685 +[9818] Forked 28686 +(28685) found +(28686) found +[9817] Forked 28687 +[9816] Forked 28688 +(28687) found +(28688) found +[9815] Forked 28689 +[9814] Forked 28690 +(28689) found +(28690) found +[9813] Forked 28691 +[9812] Forked 28692 +(28691) found +(28692) found +[9811] Forked 28693 +[9810] Forked 28694 +(28693) found +(28694) found +[9809] Forked 28696 +[9808] Forked 28697 +(28696) found +(28697) found +[9807] Forked 28698 +[9806] Forked 28699 +(28698) found +(28699) found +[9805] Forked 28700 +[9804] Forked 28701 +(28700) found +(28701) found +[9803] Forked 28702 +(28702) found +[9802] Forked 28703 +(28703) found +[9801] Forked 28704 +(28704) found +[9800] Forked 28705 +(28705) found +[9799] Forked 28706 +(28706) found +[9798] Forked 28707 +(28707) found +[9797] Forked 28708 +(28708) found +[9796] Forked 28709 +(28709) found +[9795] Forked 28710 +(28710) found +[9794] Forked 28711 +(28711) found +[9793] Forked 28712 +(28712) found +[9792] Forked 28713 +(28713) found +[9791] Forked 28714 +(28714) found +[9790] Forked 28715 +(28715) found +[9789] Forked 28716 +(28716) found +[9788] Forked 28717 +(28717) found +[9787] Forked 28718 +(28718) found +[9786] Forked 28719 +(28719) found +[9785] Forked 28720 +(28720) found +[9784] Forked 28721 +(28721) found +[9783] Forked 28722 +(28722) found +[9782] Forked 28723 +(28723) found +[9781] Forked 28724 +(28724) found +[9780] Forked 28725 +(28725) found +[9779] Forked 28726 +(28726) found +[9778] Forked 28727 +(28727) found +[9777] Forked 28728 +(28728) found +[9776] Forked 28729 +(28729) found +[9775] Forked 28730 +(28730) found +[9774] Forked 28731 +(28731) found +[9773] Forked 28732 +(28732) found +[9772] Forked 28733 +(28733) found +[9771] Forked 28734 +(28734) found +[9770] Forked 28735 +(28735) found +[9769] Forked 28736 +(28736) found +[9768] Forked 28737 +[9767] Forked 28738 +(28737) found +(28738) found +[9766] Forked 28739 +[9765] Forked 28740 +(28739) found +(28740) found +[9764] Forked 28741 +[9763] Forked 28742 +(28741) found +(28742) found +[9762] Forked 28743 +[9761] Forked 28744 +(28743) found +(28744) found +[9760] Forked 28745 +[9759] Forked 28746 +(28745) found +(28746) found +[9758] Forked 28747 +[9757] Forked 28748 +(28747) found +(28748) found +[9756] Forked 28749 +[9755] Forked 28750 +(28749) found +(28750) found +[9754] Forked 28751 +[9753] Forked 28752 +(28751) found +(28752) found +[9752] Forked 28753 +[9751] Forked 28754 +(28753) found +(28754) found +[9750] Forked 28755 +[9749] Forked 28756 +(28755) found +(28756) found +[9748] Forked 28757 +[9747] Forked 28758 +(28757) found +(28758) found +[9746] Forked 28759 +[9745] Forked 28760 +(28759) found +(28760) found +[9744] Forked 28761 +[9743] Forked 28762 +(28761) found +(28762) found +[9742] Forked 28763 +[9741] Forked 28764 +(28763) found +(28764) found +[9740] Forked 28765 +[9739] Forked 28766 +(28765) found +(28766) found +[9738] Forked 28767 +[9737] Forked 28768 +(28767) found +(28768) found +[9736] Forked 28769 +[9735] Forked 28770 +(28769) found +(28770) found +[9734] Forked 28771 +[9733] Forked 28772 +(28771) found +(28772) found +[9732] Forked 28773 +[9731] Forked 28774 +(28773) found +(28774) found +[9730] Forked 28775 +[9729] Forked 28776 +(28775) found +(28776) found +[9728] Forked 28777 +[9727] Forked 28778 +(28777) found +(28778) found +[9726] Forked 28779 +[9725] Forked 28780 +(28779) found +(28780) found +[9724] Forked 28781 +[9723] Forked 28782 +(28781) found +(28782) found +[9722] Forked 28783 +(28783) found +[9721] Forked 28784 +(28784) found +[9720] Forked 28785 +(28785) found +[9719] Forked 28786 +(28786) found +[9718] Forked 28787 +(28787) found +[9717] Forked 28788 +(28788) found +[9716] Forked 28789 +(28789) found +[9715] Forked 28790 +(28790) found +[9714] Forked 28791 +(28791) found +[9713] Forked 28792 +(28792) found +[9712] Forked 28793 +(28793) found +[9711] Forked 28794 +(28794) found +[9710] Forked 28795 +(28795) found +[9709] Forked 28796 +(28796) found +[9708] Forked 28797 +(28797) found +[9707] Forked 28798 +(28798) found +[9706] Forked 28799 +(28799) found +[9705] Forked 28800 +(28800) found +[9704] Forked 28801 +(28801) found +[9703] Forked 28802 +(28802) found +[9702] Forked 28803 +(28803) found +[9701] Forked 28804 +(28804) found +[9700] Forked 28805 +(28805) found +[9699] Forked 28806 +(28806) found +[9698] Forked 28807 +(28807) found +[9697] Forked 28808 +(28808) found +[9696] Forked 28809 +(28809) found +[9695] Forked 28810 +(28810) found +[9694] Forked 28811 +(28811) found +[9693] Forked 28812 +(28812) found +[9692] Forked 28813 +(28813) found +[9691] Forked 28814 +(28814) found +[9690] Forked 28815 +(28815) found +[9689] Forked 28816 +(28816) found +[9688] Forked 28817 +[9687] Forked 28818 +(28817) found +(28818) found +[9686] Forked 28819 +[9685] Forked 28820 +(28819) found +(28820) found +[9684] Forked 28821 +[9683] Forked 28822 +(28821) found +(28822) found +[9682] Forked 28823 +[9681] Forked 28824 +(28823) found +(28824) found +[9680] Forked 28825 +[9679] Forked 28826 +(28825) found +(28826) found +[9678] Forked 28827 +[9677] Forked 28828 +(28827) found +(28828) found +[9676] Forked 28829 +[9675] Forked 28830 +(28829) found +(28830) found +[9674] Forked 28831 +[9673] Forked 28832 +(28831) found +(28832) found +[9672] Forked 28833 +[9671] Forked 28834 +(28833) found +(28834) found +[9670] Forked 28835 +[9669] Forked 28836 +(28835) found +(28836) found +[9668] Forked 28837 +[9667] Forked 28838 +(28837) found +(28838) found +[9666] Forked 28839 +[9665] Forked 28840 +(28839) found +(28840) found +[9664] Forked 28841 +[9663] Forked 28842 +(28841) found +(28842) found +[9662] Forked 28843 +[9661] Forked 28844 +(28843) found +(28844) found +[9660] Forked 28845 +[9659] Forked 28846 +(28845) found +(28846) found +[9658] Forked 28847 +[9657] Forked 28848 +(28847) found +(28848) found +[9656] Forked 28849 +[9655] Forked 28850 +(28849) found +(28850) found +[9654] Forked 28851 +[9653] Forked 28852 +(28851) found +(28852) found +[9652] Forked 28853 +[9651] Forked 28854 +(28853) found +(28854) found +[9650] Forked 28855 +[9649] Forked 28856 +(28855) found +(28856) found +[9648] Forked 28857 +[9647] Forked 28858 +(28857) found +(28858) found +[9646] Forked 28859 +[9645] Forked 28860 +(28859) found +(28860) found +[9644] Forked 28861 +[9643] Forked 28862 +(28861) found +(28862) found +[9642] Forked 28863 +(28863) found +[9641] Forked 28864 +(28864) found +[9640] Forked 28865 +(28865) found +[9639] Forked 28866 +(28866) found +[9638] Forked 28867 +(28867) found +[9637] Forked 28868 +(28868) found +[9636] Forked 28869 +(28869) found +[9635] Forked 28870 +(28870) found +[9634] Forked 28871 +(28871) found +[9633] Forked 28872 +(28872) found +[9632] Forked 28873 +(28873) found +[9631] Forked 28874 +(28874) found +[9630] Forked 28875 +(28875) found +[9629] Forked 28876 +(28876) found +[9628] Forked 28877 +(28877) found +[9627] Forked 28878 +(28878) found +[9626] Forked 28879 +(28879) found +[9625] Forked 28880 +(28880) found +[9624] Forked 28881 +(28881) found +[9623] Forked 28882 +(28882) found +[9622] Forked 28883 +(28883) found +[9621] Forked 28884 +(28884) found +[9620] Forked 28885 +(28885) found +[9619] Forked 28886 +(28886) found +[9618] Forked 28887 +(28887) found +[9617] Forked 28888 +(28888) found +[9616] Forked 28889 +(28889) found +[9615] Forked 28890 +(28890) found +[9614] Forked 28891 +(28891) found +[9613] Forked 28892 +(28892) found +[9612] Forked 28893 +(28893) found +[9611] Forked 28894 +(28894) found +[9610] Forked 28895 +(28895) found +[9609] Forked 28896 +(28896) found +[9608] Forked 28897 +(28897) found +[9607] Forked 28898 +[9606] Forked 28899 +(28898) found +(28899) found +[9605] Forked 28900 +[9604] Forked 28901 +(28900) found +(28901) found +[9603] Forked 28902 +[9602] Forked 28903 +(28902) found +(28903) found +[9601] Forked 28904 +[9600] Forked 28905 +(28904) found +(28905) found +[9599] Forked 28906 +[9598] Forked 28907 +(28906) found +(28907) found +[9597] Forked 28908 +[9596] Forked 28909 +(28908) found +(28909) found +[9595] Forked 28910 +[9594] Forked 28911 +(28910) found +(28911) found +[9593] Forked 28912 +[9592] Forked 28913 +(28912) found +(28913) found +[9591] Forked 28914 +[9590] Forked 28915 +(28914) found +(28915) found +[9589] Forked 28916 +[9588] Forked 28917 +(28916) found +(28917) found +[9587] Forked 28918 +[9586] Forked 28919 +(28918) found +(28919) found +[9585] Forked 28920 +[9584] Forked 28921 +(28920) found +(28921) found +[9583] Forked 28922 +[9582] Forked 28923 +(28922) found +(28923) found +[9581] Forked 28924 +[9580] Forked 28925 +(28924) found +(28925) found +[9579] Forked 28926 +[9578] Forked 28927 +(28926) found +(28927) found +[9577] Forked 28928 +[9576] Forked 28929 +(28928) found +(28929) found +[9575] Forked 28930 +[9574] Forked 28931 +(28930) found +(28931) found +[9573] Forked 28932 +[9572] Forked 28933 +(28932) found +(28933) found +[9571] Forked 28934 +[9570] Forked 28935 +(28934) found +(28935) found +[9569] Forked 28936 +[9568] Forked 28937 +(28936) found +(28937) found +[9567] Forked 28938 +[9566] Forked 28939 +(28938) found +(28939) found +[9565] Forked 28940 +[9564] Forked 28941 +(28940) found +(28941) found +[9563] Forked 28942 +[9562] Forked 28943 +(28942) found +(28943) found +[9561] Forked 28944 +[9560] Forked 28945 +(28944) found +(28945) found +[9559] Forked 28946 +[9558] Forked 28947 +(28946) found +(28947) found +[9557] Forked 28948 +[9556] Forked 28949 +(28948) found +(28949) found +[9555] Forked 28950 +[9554] Forked 28951 +(28950) found +(28951) found +[9553] Forked 28952 +[9552] Forked 28953 +(28952) found +(28953) found +[9551] Forked 28954 +[9550] Forked 28955 +(28954) found +(28955) found +[9549] Forked 28956 +[9548] Forked 28957 +(28956) found +(28957) found +[9547] Forked 28958 +[9546] Forked 28959 +(28958) found +(28959) found +[9545] Forked 28960 +[9544] Forked 28961 +(28960) found +(28961) found +[9543] Forked 28962 +[9542] Forked 28963 +(28962) found +(28963) found +[9541] Forked 28964 +[9540] Forked 28965 +(28964) found +(28965) found +[9539] Forked 28966 +[9538] Forked 28967 +(28966) found +(28967) found +[9537] Forked 28968 +[9536] Forked 28969 +(28968) found +(28969) found +[9535] Forked 28970 +[9534] Forked 28971 +(28970) found +(28971) found +[9533] Forked 28972 +[9532] Forked 28973 +(28972) found +(28973) found +[9531] Forked 28974 +[9530] Forked 28975 +(28974) found +(28975) found +[9529] Forked 28976 +[9528] Forked 28977 +(28976) found +(28977) found +[9527] Forked 28978 +[9526] Forked 28979 +(28978) found +(28979) found +[9525] Forked 28980 +[9524] Forked 28981 +(28980) found +(28981) found +[9523] Forked 28982 +[9522] Forked 28983 +(28982) found +(28983) found +[9521] Forked 28984 +[9520] Forked 28985 +(28984) found +(28985) found +[9519] Forked 28986 +[9518] Forked 28987 +(28986) found +(28987) found +[9517] Forked 28988 +(28988) found +[9516] Forked 28989 +(28989) found +[9515] Forked 28990 +(28990) found +[9514] Forked 28991 +(28991) found +[9513] Forked 28992 +(28992) found +[9512] Forked 28993 +(28993) found +[9511] Forked 28994 +(28994) found +[9510] Forked 28995 +(28995) found +[9509] Forked 28996 +(28996) found +[9508] Forked 28997 +(28997) found +[9507] Forked 28998 +(28998) found +[9506] Forked 28999 +(28999) found +[9505] Forked 29000 +(29000) found +[9504] Forked 29001 +(29001) found +[9503] Forked 29002 +(29002) found +[9502] Forked 29003 +(29003) found +[9501] Forked 29004 +(29004) found +[9500] Forked 29005 +(29005) found +[9499] Forked 29006 +(29006) found +[9498] Forked 29007 +(29007) found +[9497] Forked 29008 +(29008) found +[9496] Forked 29009 +(29009) found +[9495] Forked 29010 +(29010) found +[9494] Forked 29011 +(29011) found +[9493] Forked 29012 +(29012) found +[9492] Forked 29013 +(29013) found +[9491] Forked 29014 +(29014) found +[9490] Forked 29015 +(29015) found +[9489] Forked 29016 +(29016) found +[9488] Forked 29017 +(29017) found +[9487] Forked 29018 +(29018) found +[9486] Forked 29019 +(29019) found +[9485] Forked 29020 +(29020) found +[9484] Forked 29021 +(29021) found +[9483] Forked 29022 +(29022) found +[9482] Forked 29023 +(29023) found +[9481] Forked 29024 +[9480] Forked 29025 +(29024) found +(29025) found +[9479] Forked 29026 +[9478] Forked 29027 +(29026) found +(29027) found +[9477] Forked 29028 +[9476] Forked 29029 +(29028) found +(29029) found +[9475] Forked 29030 +(29030) found +[9474] Forked 29031 +[9473] Forked 29032 +(29031) found +(29032) found +[9472] Forked 29033 +[9471] Forked 29034 +(29033) found +(29034) found +[9470] Forked 29035 +[9469] Forked 29036 +(29035) found +(29036) found +[9468] Forked 29037 +[9467] Forked 29038 +(29037) found +(29038) found +[9466] Forked 29039 +[9465] Forked 29040 +(29039) found +(29040) found +[9464] Forked 29041 +[9463] Forked 29042 +(29041) found +(29042) found +[9462] Forked 29043 +[9461] Forked 29044 +(29043) found +(29044) found +[9460] Forked 29045 +[9459] Forked 29046 +(29045) found +(29046) found +[9458] Forked 29047 +[9457] Forked 29048 +(29047) found +(29048) found +[9456] Forked 29049 +[9455] Forked 29050 +(29049) found +(29050) found +[9454] Forked 29051 +[9453] Forked 29052 +(29051) found +(29052) found +[9452] Forked 29053 +[9451] Forked 29054 +(29053) found +(29054) found +[9450] Forked 29055 +[9449] Forked 29056 +(29055) found +(29056) found +[9448] Forked 29057 +[9447] Forked 29058 +(29057) found +(29058) found +[9446] Forked 29059 +[9445] Forked 29060 +(29059) found +(29060) found +[9444] Forked 29061 +[9443] Forked 29062 +(29061) found +(29062) found +[9442] Forked 29063 +[9441] Forked 29064 +(29063) found +(29064) found +[9440] Forked 29065 +[9439] Forked 29066 +(29065) found +(29066) found +[9438] Forked 29067 +(29067) found +[9437] Forked 29068 +(29068) found +[9436] Forked 29069 +(29069) found +[9435] Forked 29070 +(29070) found +[9434] Forked 29071 +(29071) found +[9433] Forked 29072 +(29072) found +[9432] Forked 29073 +(29073) found +[9431] Forked 29074 +(29074) found +[9430] Forked 29075 +(29075) found +[9429] Forked 29076 +(29076) found +[9428] Forked 29077 +(29077) found +[9427] Forked 29078 +(29078) found +[9426] Forked 29079 +(29079) found +[9425] Forked 29080 +(29080) found +[9424] Forked 29081 +(29081) found +[9423] Forked 29082 +(29082) found +[9422] Forked 29083 +(29083) found +[9421] Forked 29084 +(29084) found +[9420] Forked 29085 +(29085) found +[9419] Forked 29086 +(29086) found +[9418] Forked 29087 +(29087) found +[9417] Forked 29088 +(29088) found +[9416] Forked 29089 +(29089) found +[9415] Forked 29090 +(29090) found +[9414] Forked 29091 +(29091) found +[9413] Forked 29092 +(29092) found +[9412] Forked 29093 +(29093) found +[9411] Forked 29094 +(29094) found +[9410] Forked 29095 +(29095) found +[9409] Forked 29096 +(29096) found +[9408] Forked 29097 +(29097) found +[9407] Forked 29098 +(29098) found +[9406] Forked 29099 +(29099) found +[9405] Forked 29100 +(29100) found +[9404] Forked 29101 +(29101) found +[9403] Forked 29102 +(29102) found +[9402] Forked 29103 +[9401] Forked 29104 +(29103) found +(29104) found +[9400] Forked 29105 +[9399] Forked 29106 +(29105) found +(29106) found +[9398] Forked 29107 +(29107) found +[9397] Forked 29108 +[9396] Forked 29109 +(29108) found +(29109) found +[9395] Forked 29110 +[9394] Forked 29111 +(29110) found +(29111) found +[9393] Forked 29112 +[9392] Forked 29113 +(29112) found +(29113) found +[9391] Forked 29114 +[9390] Forked 29115 +(29114) found +(29115) found +[9389] Forked 29116 +[9388] Forked 29117 +(29116) found +(29117) found +[9387] Forked 29118 +[9386] Forked 29119 +(29118) found +(29119) found +[9385] Forked 29120 +[9384] Forked 29121 +(29120) found +(29121) found +[9383] Forked 29122 +[9382] Forked 29123 +(29122) found +(29123) found +[9381] Forked 29124 +[9380] Forked 29125 +(29124) found +(29125) found +[9379] Forked 29126 +[9378] Forked 29127 +(29126) found +(29127) found +[9377] Forked 29128 +[9376] Forked 29129 +(29128) found +(29129) found +[9375] Forked 29130 +[9374] Forked 29131 +(29130) found +(29131) found +[9373] Forked 29132 +[9372] Forked 29133 +(29132) found +(29133) found +[9371] Forked 29134 +[9370] Forked 29135 +(29134) found +(29135) found +[9369] Forked 29136 +[9368] Forked 29137 +(29136) found +(29137) found +[9367] Forked 29138 +[9366] Forked 29139 +(29138) found +(29139) found +[9365] Forked 29140 +[9364] Forked 29141 +(29140) found +(29141) found +[9363] Forked 29142 +[9362] Forked 29143 +(29142) found +(29143) found +[9361] Forked 29144 +[9360] Forked 29145 +(29144) found +(29145) found +[9359] Forked 29146 +[9358] Forked 29147 +(29146) found +(29147) found +[9357] Forked 29148 +[9356] Forked 29149 +(29148) found +(29149) found +[9355] Forked 29150 +[9354] Forked 29151 +(29150) found +(29151) found +[9353] Forked 29152 +[9352] Forked 29153 +(29152) found +(29153) found +[9351] Forked 29154 +[9350] Forked 29155 +(29154) found +(29155) found +[9349] Forked 29156 +[9348] Forked 29157 +(29156) found +(29157) found +[9347] Forked 29158 +[9346] Forked 29159 +(29158) found +(29159) found +[9345] Forked 29160 +[9344] Forked 29161 +(29160) found +(29161) found +[9343] Forked 29162 +[9342] Forked 29163 +(29162) found +(29163) found +[9341] Forked 29164 +[9340] Forked 29165 +(29164) found +(29165) found +[9339] Forked 29166 +[9338] Forked 29167 +(29166) found +(29167) found +[9337] Forked 29168 +[9336] Forked 29169 +(29168) found +(29169) found +[9335] Forked 29170 +[9334] Forked 29171 +(29170) found +(29171) found +[9333] Forked 29172 +[9332] Forked 29173 +(29172) found +(29173) found +[9331] Forked 29174 +[9330] Forked 29176 +(29174) found +(29176) found +[9329] Forked 29177 +(29177) found +[9328] Forked 29178 +(29178) found +[9327] Forked 29179 +(29179) found +[9326] Forked 29180 +(29180) found +[9325] Forked 29181 +(29181) found +[9324] Forked 29182 +(29182) found +[9323] Forked 29183 +(29183) found +[9322] Forked 29184 +(29184) found +[9321] Forked 29185 +(29185) found +[9320] Forked 29186 +(29186) found +[9319] Forked 29187 +(29187) found +[9318] Forked 29188 +(29188) found +[9317] Forked 29189 +(29189) found +[9316] Forked 29190 +(29190) found +[9315] Forked 29191 +(29191) found +[9314] Forked 29192 +(29192) found +[9313] Forked 29193 +(29193) found +[9312] Forked 29194 +(29194) found +[9311] Forked 29195 +(29195) found +[9310] Forked 29196 +(29196) found +[9309] Forked 29197 +(29197) found +[9308] Forked 29198 +(29198) found +[9307] Forked 29199 +(29199) found +[9306] Forked 29200 +(29200) found +[9305] Forked 29201 +(29201) found +[9304] Forked 29202 +(29202) found +[9303] Forked 29203 +(29203) found +[9302] Forked 29204 +(29204) found +[9301] Forked 29205 +(29205) found +[9300] Forked 29206 +(29206) found +[9299] Forked 29207 +(29207) found +[9298] Forked 29208 +(29208) found +[9297] Forked 29209 +(29209) found +[9296] Forked 29210 +(29210) found +[9295] Forked 29211 +(29211) found +[9294] Forked 29212 +(29212) found +[9293] Forked 29213 +(29213) found +[9292] Forked 29214 +(29214) found +[9291] Forked 29215 +(29215) found +[9290] Forked 29216 +(29216) found +[9289] Forked 29217 +(29217) found +[9288] Forked 29218 +(29218) found +[9287] Forked 29219 +(29219) found +[9286] Forked 29220 +(29220) found +[9285] Forked 29221 +(29221) found +[9284] Forked 29222 +(29222) found +[9283] Forked 29223 +(29223) found +[9282] Forked 29224 +(29224) found +[9281] Forked 29225 +(29225) found +[9280] Forked 29226 +[9279] Forked 29227 +(29226) found +(29227) found +[9278] Forked 29228 +[9277] Forked 29229 +(29228) found +(29229) found +[9276] Forked 29230 +[9275] Forked 29231 +(29230) found +(29231) found +[9274] Forked 29232 +[9273] Forked 29233 +(29232) found +(29233) found +[9272] Forked 29234 +[9271] Forked 29235 +(29234) found +(29235) found +[9270] Forked 29236 +[9269] Forked 29237 +(29236) found +(29237) found +[9268] Forked 29238 +[9267] Forked 29239 +(29238) found +(29239) found +[9266] Forked 29240 +[9265] Forked 29241 +(29240) found +(29241) found +[9264] Forked 29242 +[9263] Forked 29243 +(29242) found +(29243) found +[9262] Forked 29244 +[9261] Forked 29245 +(29244) found +(29245) found +[9260] Forked 29246 +[9259] Forked 29247 +(29246) found +(29247) found +[9258] Forked 29248 +[9257] Forked 29249 +(29248) found +(29249) found +[9256] Forked 29250 +[9255] Forked 29251 +(29250) found +(29251) found +[9254] Forked 29252 +[9253] Forked 29253 +(29252) found +(29253) found +[9252] Forked 29254 +[9251] Forked 29255 +(29254) found +(29255) found +[9250] Forked 29256 +[9249] Forked 29257 +(29256) found +(29257) found +[9248] Forked 29258 +[9247] Forked 29259 +(29258) found +(29259) found +[9246] Forked 29260 +[9245] Forked 29261 +(29260) found +(29261) found +[9244] Forked 29262 +[9243] Forked 29263 +(29262) found +(29263) found +[9242] Forked 29264 +[9241] Forked 29265 +(29264) found +(29265) found +[9240] Forked 29266 +[9239] Forked 29267 +(29266) found +(29267) found +[9238] Forked 29268 +[9237] Forked 29269 +(29268) found +(29269) found +[9236] Forked 29270 +[9235] Forked 29271 +(29270) found +(29271) found +[9234] Forked 29272 +(29272) found +[9233] Forked 29273 +(29273) found +[9232] Forked 29274 +(29274) found +[9231] Forked 29275 +(29275) found +[9230] Forked 29276 +(29276) found +[9229] Forked 29277 +(29277) found +[9228] Forked 29278 +(29278) found +[9227] Forked 29279 +(29279) found +[9226] Forked 29280 +(29280) found +[9225] Forked 29281 +(29281) found +[9224] Forked 29282 +(29282) found +[9223] Forked 29283 +(29283) found +[9222] Forked 29284 +(29284) found +[9221] Forked 29285 +(29285) found +[9220] Forked 29286 +(29286) found +[9219] Forked 29287 +(29287) found +[9218] Forked 29288 +(29288) found +[9217] Forked 29289 +(29289) found +[9216] Forked 29290 +(29290) found +[9215] Forked 29291 +(29291) found +[9214] Forked 29292 +(29292) found +[9213] Forked 29293 +(29293) found +[9212] Forked 29294 +(29294) found +[9211] Forked 29295 +(29295) found +[9210] Forked 29296 +(29296) found +[9209] Forked 29297 +(29297) found +[9208] Forked 29298 +(29298) found +[9207] Forked 29299 +(29299) found +[9206] Forked 29300 +(29300) found +[9205] Forked 29301 +(29301) found +[9204] Forked 29302 +(29302) found +[9203] Forked 29303 +(29303) found +[9202] Forked 29304 +(29304) found +[9201] Forked 29305 +(29305) found +[9200] Forked 29306 +[9199] Forked 29307 +(29306) found +(29307) found +[9198] Forked 29308 +[9197] Forked 29309 +(29308) found +(29309) found +[9196] Forked 29310 +[9195] Forked 29311 +(29310) found +(29311) found +[9194] Forked 29312 +[9193] Forked 29313 +(29312) found +(29313) found +[9192] Forked 29314 +[9191] Forked 29315 +(29314) found +(29315) found +[9190] Forked 29316 +[9189] Forked 29317 +(29316) found +(29317) found +[9188] Forked 29318 +[9187] Forked 29319 +(29318) found +(29319) found +[9186] Forked 29320 +[9185] Forked 29321 +(29320) found +(29321) found +[9184] Forked 29322 +[9183] Forked 29323 +(29322) found +(29323) found +[9182] Forked 29324 +[9181] Forked 29325 +(29324) found +(29325) found +[9180] Forked 29326 +[9179] Forked 29327 +(29326) found +(29327) found +[9178] Forked 29328 +[9177] Forked 29329 +(29328) found +(29329) found +[9176] Forked 29330 +[9175] Forked 29331 +(29330) found +(29331) found +[9174] Forked 29332 +[9173] Forked 29333 +(29332) found +(29333) found +[9172] Forked 29334 +[9171] Forked 29335 +(29334) found +(29335) found +[9170] Forked 29336 +[9169] Forked 29337 +(29336) found +(29337) found +[9168] Forked 29338 +[9167] Forked 29339 +(29338) found +(29339) found +[9166] Forked 29340 +[9165] Forked 29341 +(29340) found +(29341) found +[9164] Forked 29342 +[9163] Forked 29343 +(29342) found +(29343) found +[9162] Forked 29344 +[9161] Forked 29345 +(29344) found +(29345) found +[9160] Forked 29346 +[9159] Forked 29347 +(29346) found +(29347) found +[9158] Forked 29348 +[9157] Forked 29349 +(29348) found +(29349) found +[9156] Forked 29350 +[9155] Forked 29351 +(29350) found +(29351) found +[9154] Forked 29352 +[9153] Forked 29353 +(29352) found +(29353) found +[9152] Forked 29354 +[9151] Forked 29355 +(29354) found +(29355) found +[9150] Forked 29356 +[9149] Forked 29357 +(29356) found +(29357) found +[9148] Forked 29358 +[9147] Forked 29359 +(29358) found +(29359) found +[9146] Forked 29360 +[9145] Forked 29361 +(29360) found +(29361) found +[9144] Forked 29362 +[9143] Forked 29363 +(29362) found +(29363) found +[9142] Forked 29364 +[9141] Forked 29365 +(29364) found +(29365) found +[9140] Forked 29366 +[9139] Forked 29367 +(29366) found +(29367) found +[9138] Forked 29368 +[9137] Forked 29369 +(29368) found +(29369) found +[9136] Forked 29370 +[9135] Forked 29371 +(29370) found +(29371) found +[9134] Forked 29372 +[9133] Forked 29373 +(29372) found +(29373) found +[9132] Forked 29374 +[9131] Forked 29375 +(29374) found +(29375) found +[9130] Forked 29376 +[9129] Forked 29377 +(29376) found +(29377) found +[9128] Forked 29378 +[9127] Forked 29379 +(29378) found +(29379) found +[9126] Forked 29380 +[9125] Forked 29381 +(29380) found +(29381) found +[9124] Forked 29382 +[9123] Forked 29383 +(29382) found +(29383) found +[9122] Forked 29384 +[9121] Forked 29385 +(29384) found +(29385) found +[9120] Forked 29386 +[9119] Forked 29387 +(29386) found +(29387) found +[9118] Forked 29388 +[9117] Forked 29389 +(29388) found +(29389) found +[9116] Forked 29390 +[9115] Forked 29391 +(29390) found +(29391) found +[9114] Forked 29392 +[9113] Forked 29393 +(29392) found +(29393) found +[9112] Forked 29394 +[9111] Forked 29395 +(29394) found +(29395) found +[9110] Forked 29396 +(29396) found +[9109] Forked 29397 +(29397) found +[9108] Forked 29398 +(29398) found +[9107] Forked 29399 +(29399) found +[9106] Forked 29400 +(29400) found +[9105] Forked 29401 +(29401) found +[9104] Forked 29402 +(29402) found +[9103] Forked 29403 +(29403) found +[9102] Forked 29404 +(29404) found +[9101] Forked 29405 +(29405) found +[9100] Forked 29406 +(29406) found +[9099] Forked 29407 +(29407) found +[9098] Forked 29408 +(29408) found +[9097] Forked 29409 +(29409) found +[9096] Forked 29410 +(29410) found +[9095] Forked 29411 +(29411) found +[9094] Forked 29412 +(29412) found +[9093] Forked 29413 +(29413) found +[9092] Forked 29414 +(29414) found +[9091] Forked 29415 +(29415) found +[9090] Forked 29416 +(29416) found +[9089] Forked 29417 +(29417) found +[9088] Forked 29418 +(29418) found +[9087] Forked 29419 +(29419) found +[9086] Forked 29420 +(29420) found +[9085] Forked 29421 +(29421) found +[9084] Forked 29422 +(29422) found +[9083] Forked 29423 +(29423) found +[9082] Forked 29424 +(29424) found +[9081] Forked 29425 +(29425) found +[9080] Forked 29426 +(29426) found +[9079] Forked 29427 +(29427) found +[9078] Forked 29428 +(29428) found +[9077] Forked 29429 +(29429) found +[9076] Forked 29430 +(29430) found +[9075] Forked 29431 +(29431) found +[9074] Forked 29432 +[9073] Forked 29433 +(29432) found +(29433) found +[9072] Forked 29434 +[9071] Forked 29435 +(29434) found +(29435) found +[9070] Forked 29436 +(29436) found +[9069] Forked 29437 +[9068] Forked 29438 +(29437) found +(29438) found +[9067] Forked 29439 +[9066] Forked 29440 +(29439) found +(29440) found +[9065] Forked 29441 +[9064] Forked 29442 +(29441) found +(29442) found +[9063] Forked 29443 +[9062] Forked 29444 +(29443) found +(29444) found +[9061] Forked 29445 +[9060] Forked 29446 +(29445) found +(29446) found +[9059] Forked 29447 +[9058] Forked 29448 +(29447) found +(29448) found +[9057] Forked 29449 +[9056] Forked 29450 +(29449) found +(29450) found +[9055] Forked 29451 +[9054] Forked 29452 +(29451) found +(29452) found +[9053] Forked 29453 +[9052] Forked 29454 +(29453) found +(29454) found +[9051] Forked 29455 +[9050] Forked 29456 +(29455) found +(29456) found +[9049] Forked 29457 +[9048] Forked 29458 +(29457) found +(29458) found +[9047] Forked 29459 +[9046] Forked 29460 +(29459) found +(29460) found +[9045] Forked 29461 +[9044] Forked 29462 +(29461) found +(29462) found +[9043] Forked 29463 +[9042] Forked 29464 +(29463) found +(29464) found +[9041] Forked 29465 +[9040] Forked 29466 +(29465) found +(29466) found +[9039] Forked 29467 +[9038] Forked 29468 +(29467) found +(29468) found +[9037] Forked 29469 +[9036] Forked 29470 +(29469) found +(29470) found +[9035] Forked 29471 +[9034] Forked 29472 +(29471) found +(29472) found +[9033] Forked 29473 +[9032] Forked 29474 +(29473) found +(29474) found +[9031] Forked 29475 +[9030] Forked 29476 +(29475) found +(29476) found +[9029] Forked 29477 +[9028] Forked 29478 +(29477) found +(29478) found +[9027] Forked 29479 +[9026] Forked 29480 +(29479) found +(29480) found +[9025] Forked 29481 +[9024] Forked 29482 +(29481) found +(29482) found +[9023] Forked 29483 +[9022] Forked 29484 +(29483) found +(29484) found +[9021] Forked 29485 +[9020] Forked 29486 +(29485) found +(29486) found +[9019] Forked 29487 +[9018] Forked 29488 +(29487) found +(29488) found +[9017] Forked 29489 +[9016] Forked 29490 +(29489) found +(29490) found +[9015] Forked 29491 +[9014] Forked 29492 +(29491) found +(29492) found +[9013] Forked 29493 +[9012] Forked 29494 +(29493) found +(29494) found +[9011] Forked 29495 +[9010] Forked 29496 +(29495) found +(29496) found +[9009] Forked 29497 +[9008] Forked 29498 +(29497) found +(29498) found +[9007] Forked 29499 +[9006] Forked 29500 +(29499) found +(29500) found +[9005] Forked 29501 +[9004] Forked 29502 +(29501) found +(29502) found +[9003] Forked 29503 +[9002] Forked 29504 +(29503) found +(29504) found +[9001] Forked 29505 +[9000] Forked 29506 +(29505) found +(29506) found +[8999] Forked 29507 +[8998] Forked 29508 +(29507) found +(29508) found +[8997] Forked 29509 +[8996] Forked 29510 +(29509) found +(29510) found +[8995] Forked 29511 +[8994] Forked 29512 +(29511) found +(29512) found +[8993] Forked 29513 +[8992] Forked 29514 +(29513) found +(29514) found +[8991] Forked 29515 +[8990] Forked 29516 +(29515) found +(29516) found +[8989] Forked 29517 +[8988] Forked 29518 +(29517) found +(29518) found +[8987] Forked 29519 +[8986] Forked 29520 +(29519) found +(29520) found +[8985] Forked 29521 +[8984] Forked 29522 +(29521) found +(29522) found +[8983] Forked 29523 +[8982] Forked 29524 +(29523) found +(29524) found +[8981] Forked 29525 +[8980] Forked 29526 +(29525) found +(29526) found +[8979] Forked 29527 +[8978] Forked 29528 +(29527) found +(29528) found +[8977] Forked 29529 +[8976] Forked 29530 +(29529) found +(29530) found +[8975] Forked 29531 +[8974] Forked 29532 +(29531) found +(29532) found +[8973] Forked 29533 +[8972] Forked 29534 +(29533) found +(29534) found +[8971] Forked 29535 +[8970] Forked 29536 +(29535) found +(29536) found +[8969] Forked 29537 +[8968] Forked 29538 +(29537) found +(29538) found +[8967] Forked 29539 +[8966] Forked 29540 +(29539) found +(29540) found +[8965] Forked 29541 +[8964] Forked 29542 +(29541) found +(29542) found +[8963] Forked 29543 +[8962] Forked 29544 +(29543) found +(29544) found +[8961] Forked 29545 +[8960] Forked 29546 +(29545) found +(29546) found +[8959] Forked 29547 +(29547) found +[8958] Forked 29548 +(29548) found +[8957] Forked 29549 +[8956] Forked 29550 +(29549) found +(29550) found +[8955] Forked 29551 +[8954] Forked 29552 +(29551) found +(29552) found +[8953] Forked 29553 +[8952] Forked 29554 +(29553) found +(29554) found +[8951] Forked 29555 +[8950] Forked 29556 +(29555) found +(29556) found +[8949] Forked 29557 +[8948] Forked 29558 +(29557) found +(29558) found +[8947] Forked 29559 +[8946] Forked 29560 +(29559) found +(29560) found +[8945] Forked 29561 +[8944] Forked 29562 +(29561) found +(29562) found +[8943] Forked 29563 +[8942] Forked 29564 +(29563) found +(29564) found +[8941] Forked 29565 +(29565) found +[8940] Forked 29566 +(29566) found +[8939] Forked 29567 +(29567) found +[8938] Forked 29568 +(29568) found +[8937] Forked 29569 +(29569) found +[8936] Forked 29570 +(29570) found +[8935] Forked 29571 +(29571) found +[8934] Forked 29572 +(29572) found +[8933] Forked 29573 +(29573) found +[8932] Forked 29574 +(29574) found +[8931] Forked 29575 +(29575) found +[8930] Forked 29576 +(29576) found +[8929] Forked 29577 +(29577) found +[8928] Forked 29578 +(29578) found +[8927] Forked 29579 +(29579) found +[8926] Forked 29580 +(29580) found +[8925] Forked 29581 +(29581) found +[8924] Forked 29582 +(29582) found +[8923] Forked 29583 +(29583) found +[8922] Forked 29584 +(29584) found +[8921] Forked 29585 +(29585) found +[8920] Forked 29586 +(29586) found +[8919] Forked 29587 +(29587) found +[8918] Forked 29588 +(29588) found +[8917] Forked 29589 +(29589) found +[8916] Forked 29590 +(29590) found +[8915] Forked 29591 +(29591) found +[8914] Forked 29592 +(29592) found +[8913] Forked 29593 +(29593) found +[8912] Forked 29594 +(29594) found +[8911] Forked 29595 +(29595) found +[8910] Forked 29596 +(29596) found +[8909] Forked 29597 +(29597) found +[8908] Forked 29598 +(29598) found +[8907] Forked 29599 +(29599) found +[8906] Forked 29600 +(29600) found +[8905] Forked 29601 +(29601) found +[8904] Forked 29602 +(29602) found +[8903] Forked 29603 +(29603) found +[8902] Forked 29604 +(29604) found +[8901] Forked 29605 +(29605) found +[8900] Forked 29606 +(29606) found +[8899] Forked 29607 +(29607) found +[8898] Forked 29608 +(29608) found +[8897] Forked 29609 +(29609) found +[8896] Forked 29610 +(29610) found +[8895] Forked 29611 +(29611) found +[8894] Forked 29612 +(29612) found +[8893] Forked 29613 +(29613) found +[8892] Forked 29614 +(29614) found +[8891] Forked 29615 +(29615) found +[8890] Forked 29616 +(29616) found +[8889] Forked 29617 +(29617) found +[8888] Forked 29618 +(29618) found +[8887] Forked 29619 +(29619) found +[8886] Forked 29620 +(29620) found +[8885] Forked 29621 +(29621) found +[8884] Forked 29622 +(29622) found +[8883] Forked 29623 +(29623) found +[8882] Forked 29624 +(29624) found +[8881] Forked 29625 +(29625) found +[8880] Forked 29626 +(29626) found +[8879] Forked 29627 +(29627) found +[8878] Forked 29628 +(29628) found +[8877] Forked 29629 +(29629) found +[8876] Forked 29630 +(29630) found +[8875] Forked 29631 +(29631) found +[8874] Forked 29632 +(29632) found +[8873] Forked 29633 +(29633) found +[8872] Forked 29634 +(29634) found +[8871] Forked 29635 +(29635) found +[8870] Forked 29636 +(29636) found +[8869] Forked 29637 +[8868] Forked 29638 +(29637) found +(29638) found +[8867] Forked 29639 +[8866] Forked 29640 +(29639) found +(29640) found +[8865] Forked 29641 +[8864] Forked 29642 +(29641) found +(29642) found +[8863] Forked 29643 +[8862] Forked 29644 +(29643) found +(29644) found +[8861] Forked 29645 +[8860] Forked 29646 +(29645) found +(29646) found +[8859] Forked 29647 +[8858] Forked 29648 +(29647) found +(29648) found +[8857] Forked 29649 +[8856] Forked 29650 +(29649) found +(29650) found +[8855] Forked 29651 +[8854] Forked 29652 +(29651) found +(29652) found +[8853] Forked 29653 +[8852] Forked 29654 +(29653) found +(29654) found +[8851] Forked 29655 +[8850] Forked 29656 +(29655) found +(29656) found +[8849] Forked 29657 +[8848] Forked 29659 +(29657) found +(29659) found +[8847] Forked 29660 +(29660) found +[8846] Forked 29661 +(29661) found +[8845] Forked 29662 +(29662) found +[8844] Forked 29663 +(29663) found +[8843] Forked 29664 +(29664) found +[8842] Forked 29665 +(29665) found +[8841] Forked 29666 +(29666) found +[8840] Forked 29667 +(29667) found +[8839] Forked 29668 +(29668) found +[8838] Forked 29669 +(29669) found +[8837] Forked 29670 +(29670) found +[8836] Forked 29671 +(29671) found +[8835] Forked 29672 +(29672) found +[8834] Forked 29673 +(29673) found +[8833] Forked 29674 +(29674) found +[8832] Forked 29675 +(29675) found +[8831] Forked 29676 +(29676) found +[8830] Forked 29677 +(29677) found +[8829] Forked 29678 +(29678) found +[8828] Forked 29679 +(29679) found +[8827] Forked 29680 +(29680) found +[8826] Forked 29681 +(29681) found +[8825] Forked 29682 +(29682) found +[8824] Forked 29683 +(29683) found +[8823] Forked 29684 +(29684) found +[8822] Forked 29685 +(29685) found +[8821] Forked 29686 +(29686) found +[8820] Forked 29687 +(29687) found +[8819] Forked 29688 +(29688) found +[8818] Forked 29689 +(29689) found +[8817] Forked 29690 +(29690) found +[8816] Forked 29691 +(29691) found +[8815] Forked 29692 +(29692) found +[8814] Forked 29693 +(29693) found +[8813] Forked 29694 +(29694) found +[8812] Forked 29695 +(29695) found +[8811] Forked 29696 +(29696) found +[8810] Forked 29697 +(29697) found +[8809] Forked 29698 +(29698) found +[8808] Forked 29699 +(29699) found +[8807] Forked 29700 +(29700) found +[8806] Forked 29701 +(29701) found +[8805] Forked 29702 +(29702) found +[8804] Forked 29703 +(29703) found +[8803] Forked 29704 +(29704) found +[8802] Forked 29705 +(29705) found +[8801] Forked 29706 +(29706) found +[8800] Forked 29707 +(29707) found +[8799] Forked 29708 +(29708) found +[8798] Forked 29709 +(29709) found +[8797] Forked 29710 +(29710) found +[8796] Forked 29711 +(29711) found +[8795] Forked 29712 +(29712) found +[8794] Forked 29713 +(29713) found +[8793] Forked 29714 +(29714) found +[8792] Forked 29715 +(29715) found +[8791] Forked 29716 +(29716) found +[8790] Forked 29717 +(29717) found +[8789] Forked 29718 +(29718) found +[8788] Forked 29719 +(29719) found +[8787] Forked 29720 +(29720) found +[8786] Forked 29721 +(29721) found +[8785] Forked 29722 +(29722) found +[8784] Forked 29723 +(29723) found +[8783] Forked 29724 +(29724) found +[8782] Forked 29725 +(29725) found +[8781] Forked 29726 +(29726) found +[8780] Forked 29727 +(29727) found +[8779] Forked 29728 +(29728) found +[8778] Forked 29729 +(29729) found +[8777] Forked 29730 +(29730) found +[8776] Forked 29731 +(29731) found +[8775] Forked 29732 +(29732) found +[8774] Forked 29733 +(29733) found +[8773] Forked 29734 +(29734) found +[8772] Forked 29735 +(29735) found +[8771] Forked 29736 +(29736) found +[8770] Forked 29737 +(29737) found +[8769] Forked 29738 +(29738) found +[8768] Forked 29739 +(29739) found +[8767] Forked 29740 +(29740) found +[8766] Forked 29741 +(29741) found +[8765] Forked 29742 +(29742) found +[8764] Forked 29743 +(29743) found +[8763] Forked 29744 +(29744) found +[8762] Forked 29745 +(29745) found +[8761] Forked 29746 +(29746) found +[8760] Forked 29747 +(29747) found +[8759] Forked 29748 +(29748) found +[8758] Forked 29749 +[8757] Forked 29750 +(29749) found +(29750) found +[8756] Forked 29751 +[8755] Forked 29752 +(29751) found +(29752) found +[8754] Forked 29753 +[8753] Forked 29755 +(29753) found +(29755) found +[8752] Forked 29756 +(29756) found +[8751] Forked 29757 +(29757) found +[8750] Forked 29758 +(29758) found +[8749] Forked 29759 +(29759) found +[8748] Forked 29760 +(29760) found +[8747] Forked 29761 +(29761) found +[8746] Forked 29762 +(29762) found +[8745] Forked 29763 +(29763) found +[8744] Forked 29764 +(29764) found +[8743] Forked 29765 +(29765) found +[8742] Forked 29766 +(29766) found +[8741] Forked 29767 +(29767) found +[8740] Forked 29768 +(29768) found +[8739] Forked 29769 +(29769) found +[8738] Forked 29770 +(29770) found +[8737] Forked 29771 +(29771) found +[8736] Forked 29772 +(29772) found +[8735] Forked 29773 +(29773) found +[8734] Forked 29774 +(29774) found +[8733] Forked 29775 +(29775) found +[8732] Forked 29776 +(29776) found +[8731] Forked 29777 +(29777) found +[8730] Forked 29778 +(29778) found +[8729] Forked 29779 +(29779) found +[8728] Forked 29780 +(29780) found +[8727] Forked 29781 +(29781) found +[8726] Forked 29782 +(29782) found +[8725] Forked 29783 +(29783) found +[8724] Forked 29784 +(29784) found +[8723] Forked 29785 +(29785) found +[8722] Forked 29786 +(29786) found +[8721] Forked 29787 +(29787) found +[8720] Forked 29788 +(29788) found +[8719] Forked 29789 +(29789) found +[8718] Forked 29790 +(29790) found +[8717] Forked 29791 +(29791) found +[8716] Forked 29792 +(29792) found +[8715] Forked 29793 +(29793) found +[8714] Forked 29794 +(29794) found +[8713] Forked 29795 +(29795) found +[8712] Forked 29796 +(29796) found +[8711] Forked 29797 +(29797) found +[8710] Forked 29798 +(29798) found +[8709] Forked 29799 +(29799) found +[8708] Forked 29800 +(29800) found +[8707] Forked 29801 +(29801) found +[8706] Forked 29802 +(29802) found +[8705] Forked 29803 +(29803) found +[8704] Forked 29804 +(29804) found +[8703] Forked 29805 +(29805) found +[8702] Forked 29806 +(29806) found +[8701] Forked 29807 +(29807) found +[8700] Forked 29808 +(29808) found +[8699] Forked 29809 +(29809) found +[8698] Forked 29810 +(29810) found +[8697] Forked 29811 +(29811) found +[8696] Forked 29812 +(29812) found +[8695] Forked 29813 +(29813) found +[8694] Forked 29814 +(29814) found +[8693] Forked 29815 +(29815) found +[8692] Forked 29816 +(29816) found +[8691] Forked 29817 +(29817) found +[8690] Forked 29818 +(29818) found +[8689] Forked 29819 +(29819) found +[8688] Forked 29820 +(29820) found +[8687] Forked 29821 +(29821) found +[8686] Forked 29822 +(29822) found +[8685] Forked 29823 +(29823) found +[8684] Forked 29824 +(29824) found +[8683] Forked 29825 +(29825) found +[8682] Forked 29826 +(29826) found +[8681] Forked 29827 +(29827) found +[8680] Forked 29828 +(29828) found +[8679] Forked 29829 +(29829) found +[8678] Forked 29830 +(29830) found +[8677] Forked 29831 +(29831) found +[8676] Forked 29832 +(29832) found +[8675] Forked 29833 +(29833) found +[8674] Forked 29834 +(29834) found +[8673] Forked 29835 +(29835) found +[8672] Forked 29836 +(29836) found +[8671] Forked 29837 +(29837) found +[8670] Forked 29838 +(29838) found +[8669] Forked 29839 +(29839) found +[8668] Forked 29840 +(29840) found +[8667] Forked 29841 +(29841) found +[8666] Forked 29842 +(29842) found +[8665] Forked 29843 +(29843) found +[8664] Forked 29844 +(29844) found +[8663] Forked 29845 +(29845) found +[8662] Forked 29846 +(29846) found +[8661] Forked 29847 +(29847) found +[8660] Forked 29848 +(29848) found +[8659] Forked 29849 +(29849) found +[8658] Forked 29850 +(29850) found +[8657] Forked 29851 +(29851) found +[8656] Forked 29852 +(29852) found +[8655] Forked 29853 +(29853) found +[8654] Forked 29854 +(29854) found +[8653] Forked 29855 +(29855) found +[8652] Forked 29856 +(29856) found +[8651] Forked 29857 +(29857) found +[8650] Forked 29858 +[8649] Forked 29859 +(29858) found +(29859) found +[8648] Forked 29860 +[8647] Forked 29861 +(29860) found +(29861) found +[8646] Forked 29862 +[8645] Forked 29863 +(29862) found +(29863) found +[8644] Forked 29864 +[8643] Forked 29865 +(29864) found +(29865) found +[8642] Forked 29866 +[8641] Forked 29867 +(29866) found +(29867) found +[8640] Forked 29868 +[8639] Forked 29869 +(29868) found +(29869) found +[8638] Forked 29870 +[8637] Forked 29871 +(29870) found +(29871) found +[8636] Forked 29872 +[8635] Forked 29873 +(29872) found +(29873) found +[8634] Forked 29874 +[8633] Forked 29875 +(29874) found +(29875) found +[8632] Forked 29876 +[8631] Forked 29877 +(29876) found +(29877) found +[8630] Forked 29878 +[8629] Forked 29879 +(29878) found +(29879) found +[8628] Forked 29880 +[8627] Forked 29881 +(29880) found +(29881) found +[8626] Forked 29882 +[8625] Forked 29883 +(29882) found +(29883) found +[8624] Forked 29884 +[8623] Forked 29885 +(29884) found +(29885) found +[8622] Forked 29886 +[8621] Forked 29887 +(29886) found +(29887) found +[8620] Forked 29888 +[8619] Forked 29889 +(29888) found +(29889) found +[8618] Forked 29890 +[8617] Forked 29891 +(29890) found +(29891) found +[8616] Forked 29892 +[8615] Forked 29893 +(29892) found +(29893) found +[8614] Forked 29894 +[8613] Forked 29895 +(29894) found +(29895) found +[8612] Forked 29896 +[8611] Forked 29897 +(29896) found +(29897) found +[8610] Forked 29898 +[8609] Forked 29899 +(29899) found +(29898) found +[8608] Forked 29900 +(29900) found +[8607] Forked 29901 +(29901) found +[8606] Forked 29902 +(29902) found +[8605] Forked 29903 +(29903) found +[8604] Forked 29904 +(29904) found +[8603] Forked 29905 +(29905) found +[8602] Forked 29906 +(29906) found +[8601] Forked 29907 +[8600] Forked 29908 +(29907) found +(29908) found +[8599] Forked 29909 +[8598] Forked 29910 +(29909) found +(29910) found +[8597] Forked 29911 +[8596] Forked 29912 +(29911) found +(29912) found +[8595] Forked 29913 +[8594] Forked 29914 +(29913) found +(29914) found +[8593] Forked 29915 +[8592] Forked 29916 +(29915) found +(29916) found +[8591] Forked 29917 +[8590] Forked 29918 +(29917) found +(29918) found +[8589] Forked 29919 +[8588] Forked 29920 +(29919) found +(29920) found +[8587] Forked 29921 +[8586] Forked 29922 +(29921) found +(29922) found +[8585] Forked 29923 +[8584] Forked 29924 +(29923) found +(29924) found +[8583] Forked 29925 +[8582] Forked 29926 +(29925) found +(29926) found +[8581] Forked 29927 +[8580] Forked 29928 +(29927) found +(29928) found +[8579] Forked 29929 +[8578] Forked 29930 +(29929) found +(29930) found +[8577] Forked 29931 +[8576] Forked 29932 +(29931) found +(29932) found +[8575] Forked 29933 +[8574] Forked 29934 +(29933) found +(29934) found +[8573] Forked 29935 +[8572] Forked 29936 +(29935) found +(29936) found +[8571] Forked 29937 +[8570] Forked 29938 +(29937) found +(29938) found +[8569] Forked 29939 +[8568] Forked 29940 +(29939) found +(29940) found +[8567] Forked 29941 +[8566] Forked 29942 +(29941) found +(29942) found +[8565] Forked 29943 +[8564] Forked 29944 +(29943) found +(29944) found +[8563] Forked 29945 +[8562] Forked 29946 +(29945) found +(29946) found +[8561] Forked 29947 +(29947) found +[8560] Forked 29948 +(29948) found +[8559] Forked 29949 +(29949) found +[8558] Forked 29950 +(29950) found +[8557] Forked 29951 +(29951) found +[8556] Forked 29952 +(29952) found +[8555] Forked 29953 +(29953) found +[8554] Forked 29954 +(29954) found +[8553] Forked 29955 +(29955) found +[8552] Forked 29956 +(29956) found +[8551] Forked 29957 +(29957) found +[8550] Forked 29958 +(29958) found +[8549] Forked 29959 +(29959) found +[8548] Forked 29960 +(29960) found +[8547] Forked 29961 +(29961) found +[8546] Forked 29962 +(29962) found +[8545] Forked 29963 +(29963) found +[8544] Forked 29964 +(29964) found +[8543] Forked 29965 +(29965) found +[8542] Forked 29966 +(29966) found +[8541] Forked 29967 +(29967) found +[8540] Forked 29968 +(29968) found +[8539] Forked 29969 +(29969) found +[8538] Forked 29970 +(29970) found +[8537] Forked 29971 +(29971) found +[8536] Forked 29972 +(29972) found +[8535] Forked 29973 +(29973) found +[8534] Forked 29974 +(29974) found +[8533] Forked 29975 +(29975) found +[8532] Forked 29976 +(29976) found +[8531] Forked 29977 +(29977) found +[8530] Forked 29978 +(29978) found +[8529] Forked 29979 +(29979) found +[8528] Forked 29980 +(29980) found +[8527] Forked 29981 +(29981) found +[8526] Forked 29982 +(29982) found +[8525] Forked 29983 +[8524] Forked 29984 +(29983) found +(29984) found +[8523] Forked 29985 +[8522] Forked 29986 +(29985) found +(29986) found +[8521] Forked 29987 +[8520] Forked 29988 +(29987) found +(29988) found +[8519] Forked 29989 +[8518] Forked 29990 +(29989) found +(29990) found +[8517] Forked 29991 +[8516] Forked 29992 +(29991) found +(29992) found +[8515] Forked 29993 +[8514] Forked 29994 +(29993) found +(29994) found +[8513] Forked 29995 +[8512] Forked 29996 +(29995) found +(29996) found +[8511] Forked 29997 +[8510] Forked 29998 +(29997) found +(29998) found +[8509] Forked 29999 +[8508] Forked 30000 +(29999) found +(30000) found +[8507] Forked 30001 +[8506] Forked 30002 +(30001) found +(30002) found +[8505] Forked 30003 +[8504] Forked 30004 +(30003) found +(30004) found +[8503] Forked 30005 +[8502] Forked 30006 +(30005) found +(30006) found +[8501] Forked 30007 +[8500] Forked 30008 +(30007) found +(30008) found +[8499] Forked 30009 +[8498] Forked 30010 +(30009) found +(30010) found +[8497] Forked 30011 +[8496] Forked 30012 +(30011) found +(30012) found +[8495] Forked 30013 +[8494] Forked 30014 +(30013) found +(30014) found +[8493] Forked 30015 +[8492] Forked 30016 +(30015) found +(30016) found +[8491] Forked 30017 +[8490] Forked 30018 +(30017) found +(30018) found +[8489] Forked 30019 +[8488] Forked 30020 +(30019) found +(30020) found +[8487] Forked 30021 +[8486] Forked 30022 +(30021) found +(30022) found +[8485] Forked 30023 +[8484] Forked 30024 +(30023) found +(30024) found +[8483] Forked 30025 +[8482] Forked 30026 +(30025) found +(30026) found +[8481] Forked 30027 +(30027) found +[8480] Forked 30028 +(30028) found +[8479] Forked 30029 +(30029) found +[8478] Forked 30030 +(30030) found +[8477] Forked 30031 +(30031) found +[8476] Forked 30032 +(30032) found +[8475] Forked 30033 +(30033) found +[8474] Forked 30034 +(30034) found +[8473] Forked 30035 +(30035) found +[8472] Forked 30036 +(30036) found +[8471] Forked 30037 +(30037) found +[8470] Forked 30038 +(30038) found +[8469] Forked 30039 +(30039) found +[8468] Forked 30040 +(30040) found +[8467] Forked 30041 +(30041) found +[8466] Forked 30042 +(30042) found +[8465] Forked 30043 +(30043) found +[8464] Forked 30044 +(30044) found +[8463] Forked 30045 +(30045) found +[8462] Forked 30046 +(30046) found +[8461] Forked 30047 +(30047) found +[8460] Forked 30048 +(30048) found +[8459] Forked 30049 +(30049) found +[8458] Forked 30050 +(30050) found +[8457] Forked 30051 +(30051) found +[8456] Forked 30052 +(30052) found +[8455] Forked 30053 +(30053) found +[8454] Forked 30054 +(30054) found +[8453] Forked 30055 +(30055) found +[8452] Forked 30056 +(30056) found +[8451] Forked 30057 +(30057) found +[8450] Forked 30058 +(30058) found +[8449] Forked 30059 +(30059) found +[8448] Forked 30060 +(30060) found +[8447] Forked 30061 +(30061) found +[8446] Forked 30062 +(30062) found +[8445] Forked 30063 +(30063) found +[8444] Forked 30064 +[8443] Forked 30065 +(30064) found +(30065) found +[8442] Forked 30066 +[8441] Forked 30067 +(30066) found +(30067) found +[8440] Forked 30068 +[8439] Forked 30069 +(30068) found +(30069) found +[8438] Forked 30070 +[8437] Forked 30071 +(30070) found +(30071) found +[8436] Forked 30072 +[8435] Forked 30073 +(30072) found +(30073) found +[8434] Forked 30074 +[8433] Forked 30075 +(30074) found +(30075) found +[8432] Forked 30076 +[8431] Forked 30077 +(30076) found +(30077) found +[8430] Forked 30078 +[8429] Forked 30079 +(30078) found +(30079) found +[8428] Forked 30080 +[8427] Forked 30081 +(30080) found +(30081) found +[8426] Forked 30082 +[8425] Forked 30083 +(30082) found +(30083) found +[8424] Forked 30084 +[8423] Forked 30085 +(30084) found +(30085) found +[8422] Forked 30086 +[8421] Forked 30087 +(30086) found +(30087) found +[8420] Forked 30088 +[8419] Forked 30089 +(30088) found +(30089) found +[8418] Forked 30090 +[8417] Forked 30091 +(30090) found +(30091) found +[8416] Forked 30092 +[8415] Forked 30093 +(30092) found +(30093) found +[8414] Forked 30094 +[8413] Forked 30095 +(30094) found +(30095) found +[8412] Forked 30096 +[8411] Forked 30097 +(30096) found +(30097) found +[8410] Forked 30098 +[8409] Forked 30099 +(30098) found +(30099) found +[8408] Forked 30100 +[8407] Forked 30101 +(30100) found +(30101) found +[8406] Forked 30102 +[8405] Forked 30103 +(30102) found +(30103) found +[8404] Forked 30104 +[8403] Forked 30105 +(30104) found +(30105) found +[8402] Forked 30106 +[8401] Forked 30107 +(30106) found +(30107) found +[8400] Forked 30108 +[8399] Forked 30109 +(30108) found +(30109) found +[8398] Forked 30110 +[8397] Forked 30111 +(30110) found +(30111) found +[8396] Forked 30112 +[8395] Forked 30113 +(30112) found +(30113) found +[8394] Forked 30114 +[8393] Forked 30115 +(30114) found +(30115) found +[8392] Forked 30116 +[8391] Forked 30117 +(30116) found +(30117) found +[8390] Forked 30118 +[8389] Forked 30119 +(30118) found +(30119) found +[8388] Forked 30120 +[8387] Forked 30121 +(30120) found +(30121) found +[8386] Forked 30122 +[8385] Forked 30123 +(30122) found +(30123) found +[8384] Forked 30124 +[8383] Forked 30125 +(30124) found +(30125) found +[8382] Forked 30126 +[8381] Forked 30127 +(30126) found +(30127) found +[8380] Forked 30128 +[8379] Forked 30129 +(30128) found +(30129) found +[8378] Forked 30130 +[8377] Forked 30131 +(30130) found +(30131) found +[8376] Forked 30132 +[8375] Forked 30133 +(30132) found +(30133) found +[8374] Forked 30134 +[8373] Forked 30135 +(30134) found +(30135) found +[8372] Forked 30136 +[8371] Forked 30137 +(30136) found +(30137) found +[8370] Forked 30138 +[8369] Forked 30139 +(30138) found +(30139) found +[8368] Forked 30140 +[8367] Forked 30141 +(30140) found +(30141) found +[8366] Forked 30142 +[8365] Forked 30143 +(30142) found +(30143) found +[8364] Forked 30144 +[8363] Forked 30145 +(30144) found +(30145) found +[8362] Forked 30146 +[8361] Forked 30147 +(30146) found +(30147) found +[8360] Forked 30148 +[8359] Forked 30149 +(30148) found +(30149) found +[8358] Forked 30150 +[8357] Forked 30151 +(30150) found +(30151) found +[8356] Forked 30152 +[8355] Forked 30153 +(30152) found +(30153) found +[8354] Forked 30154 +[8353] Forked 30155 +(30154) found +(30155) found +[8352] Forked 30156 +(30156) found +[8351] Forked 30157 +(30157) found +[8350] Forked 30158 +(30158) found +[8349] Forked 30159 +(30159) found +[8348] Forked 30160 +(30160) found +[8347] Forked 30161 +[8346] Forked 30162 +(30161) found +(30162) found +[8345] Forked 30163 +[8344] Forked 30164 +(30163) found +(30164) found +[8343] Forked 30165 +[8342] Forked 30166 +(30165) found +(30166) found +[8341] Forked 30167 +[8340] Forked 30168 +(30167) found +(30168) found +[8339] Forked 30169 +[8338] Forked 30170 +(30169) found +(30170) found +[8337] Forked 30171 +[8336] Forked 30172 +(30171) found +(30172) found +[8335] Forked 30173 +[8334] Forked 30174 +(30173) found +(30174) found +[8333] Forked 30175 +[8332] Forked 30176 +(30175) found +(30176) found +[8331] Forked 30177 +[8330] Forked 30178 +(30177) found +(30178) found +[8329] Forked 30179 +[8328] Forked 30180 +(30179) found +(30180) found +[8327] Forked 30181 +[8326] Forked 30182 +(30181) found +(30182) found +[8325] Forked 30183 +[8324] Forked 30184 +(30183) found +(30184) found +[8323] Forked 30185 +[8322] Forked 30186 +(30185) found +(30186) found +[8321] Forked 30187 +[8320] Forked 30188 +(30187) found +(30188) found +[8319] Forked 30189 +[8318] Forked 30190 +(30189) found +(30190) found +[8317] Forked 30191 +[8316] Forked 30192 +(30191) found +(30192) found +[8315] Forked 30193 +[8314] Forked 30194 +(30193) found +(30194) found +[8313] Forked 30195 +[8312] Forked 30196 +(30195) found +(30196) found +[8311] Forked 30197 +[8310] Forked 30198 +(30197) found +(30198) found +[8309] Forked 30199 +[8308] Forked 30201 +(30199) found +(30201) found +[8307] Forked 30202 +(30202) found +[8306] Forked 30203 +(30203) found +[8305] Forked 30204 +(30204) found +[8304] Forked 30205 +(30205) found +[8303] Forked 30206 +(30206) found +[8302] Forked 30207 +(30207) found +[8301] Forked 30208 +(30208) found +[8300] Forked 30209 +(30209) found +[8299] Forked 30210 +(30210) found +[8298] Forked 30211 +(30211) found +[8297] Forked 30212 +(30212) found +[8296] Forked 30213 +(30213) found +[8295] Forked 30214 +(30214) found +[8294] Forked 30215 +(30215) found +[8293] Forked 30216 +(30216) found +[8292] Forked 30217 +(30217) found +[8291] Forked 30218 +(30218) found +[8290] Forked 30219 +(30219) found +[8289] Forked 30220 +(30220) found +[8288] Forked 30221 +(30221) found +[8287] Forked 30222 +(30222) found +[8286] Forked 30223 +(30223) found +[8285] Forked 30224 +(30224) found +[8284] Forked 30225 +(30225) found +[8283] Forked 30226 +(30226) found +[8282] Forked 30227 +(30227) found +[8281] Forked 30228 +(30228) found +[8280] Forked 30229 +(30229) found +[8279] Forked 30230 +(30230) found +[8278] Forked 30231 +(30231) found +[8277] Forked 30232 +(30232) found +[8276] Forked 30233 +(30233) found +[8275] Forked 30234 +(30234) found +[8274] Forked 30235 +(30235) found +[8273] Forked 30236 +(30236) found +[8272] Forked 30237 +(30237) found +[8271] Forked 30238 +(30238) found +[8270] Forked 30239 +(30239) found +[8269] Forked 30240 +(30240) found +[8268] Forked 30241 +(30241) found +[8267] Forked 30242 +[8266] Forked 30243 +(30243) found +(30242) found +[8265] Forked 30244 +(30244) found +[8264] Forked 30245 +(30245) found +[8263] Forked 30246 +(30246) found +[8262] Forked 30247 +(30247) found +[8261] Forked 30248 +(30248) found +[8260] Forked 30249 +(30249) found +[8259] Forked 30250 +(30250) found +[8258] Forked 30251 +(30251) found +[8257] Forked 30252 +(30252) found +[8256] Forked 30253 +(30253) found +[8255] Forked 30254 +(30254) found +[8254] Forked 30255 +(30255) found +[8253] Forked 30256 +(30256) found +[8252] Forked 30257 +(30257) found +[8251] Forked 30258 +(30258) found +[8250] Forked 30259 +(30259) found +[8249] Forked 30260 +(30260) found +[8248] Forked 30261 +(30261) found +[8247] Forked 30262 +(30262) found +[8246] Forked 30263 +(30263) found +[8245] Forked 30264 +(30264) found +[8244] Forked 30265 +(30265) found +[8243] Forked 30266 +(30266) found +[8242] Forked 30267 +(30267) found +[8241] Forked 30268 +(30268) found +[8240] Forked 30269 +(30269) found +[8239] Forked 30270 +(30270) found +[8238] Forked 30271 +(30271) found +[8237] Forked 30272 +(30272) found +[8236] Forked 30273 +(30273) found +[8235] Forked 30274 +(30274) found +[8234] Forked 30275 +(30275) found +[8233] Forked 30276 +(30276) found +[8232] Forked 30277 +(30277) found +[8231] Forked 30278 +(30278) found +[8230] Forked 30279 +(30279) found +[8229] Forked 30280 +(30280) found +[8228] Forked 30281 +(30281) found +[8227] Forked 30282 +(30282) found +[8226] Forked 30283 +(30283) found +[8225] Forked 30284 +(30284) found +[8224] Forked 30285 +(30285) found +[8223] Forked 30286 +(30286) found +[8222] Forked 30287 +(30287) found +[8221] Forked 30288 +(30288) found +[8220] Forked 30289 +(30289) found +[8219] Forked 30290 +(30290) found +[8218] Forked 30291 +(30291) found +[8217] Forked 30292 +(30292) found +[8216] Forked 30293 +(30293) found +[8215] Forked 30294 +(30294) found +[8214] Forked 30295 +(30295) found +[8213] Forked 30296 +(30296) found +[8212] Forked 30297 +(30297) found +[8211] Forked 30298 +(30298) found +[8210] Forked 30299 +(30299) found +[8209] Forked 30300 +(30300) found +[8208] Forked 30301 +(30301) found +[8207] Forked 30302 +(30302) found +[8206] Forked 30303 +(30303) found +[8205] Forked 30304 +(30304) found +[8204] Forked 30305 +(30305) found +[8203] Forked 30306 +(30306) found +[8202] Forked 30307 +(30307) found +[8201] Forked 30308 +(30308) found +[8200] Forked 30309 +(30309) found +[8199] Forked 30310 +(30310) found +[8198] Forked 30311 +(30311) found +[8197] Forked 30312 +(30312) found +[8196] Forked 30313 +(30313) found +[8195] Forked 30314 +(30314) found +[8194] Forked 30315 +[8193] Forked 30316 +(30315) found +(30316) found +[8192] Forked 30317 +[8191] Forked 30318 +(30317) found +(30318) found +[8190] Forked 30319 +[8189] Forked 30320 +(30319) found +(30320) found +[8188] Forked 30321 +[8187] Forked 30322 +(30321) found +(30322) found +[8186] Forked 30323 +[8185] Forked 30324 +(30323) found +(30324) found +[8184] Forked 30325 +[8183] Forked 30326 +(30325) found +(30326) found +[8182] Forked 30327 +[8181] Forked 30328 +(30327) found +(30328) found +[8180] Forked 30329 +[8179] Forked 30330 +(30329) found +(30330) found +[8178] Forked 30331 +[8177] Forked 30332 +(30331) found +(30332) found +[8176] Forked 30333 +[8175] Forked 30334 +(30333) found +(30334) found +[8174] Forked 30335 +[8173] Forked 30336 +(30335) found +(30336) found +[8172] Forked 30337 +[8171] Forked 30338 +(30337) found +(30338) found +[8170] Forked 30339 +(30339) found +[8169] Forked 30340 +[8168] Forked 30341 +(30340) found +(30341) found +[8167] Forked 30342 +[8166] Forked 30343 +(30342) found +(30343) found +[8165] Forked 30344 +[8164] Forked 30345 +(30344) found +(30345) found +[8163] Forked 30346 +[8162] Forked 30347 +(30346) found +(30347) found +[8161] Forked 30348 +[8160] Forked 30349 +(30348) found +(30349) found +[8159] Forked 30350 +[8158] Forked 30351 +(30350) found +(30351) found +[8157] Forked 30352 +[8156] Forked 30353 +(30352) found +(30353) found +[8155] Forked 30354 +[8154] Forked 30355 +(30355) found +(30354) found +[8153] Forked 30356 +(30356) found +[8152] Forked 30357 +(30357) found +[8151] Forked 30358 +(30358) found +[8150] Forked 30359 +(30359) found +[8149] Forked 30360 +(30360) found +[8148] Forked 30361 +(30361) found +[8147] Forked 30362 +(30362) found +[8146] Forked 30363 +(30363) found +[8145] Forked 30364 +(30364) found +[8144] Forked 30365 +(30365) found +[8143] Forked 30366 +(30366) found +[8142] Forked 30367 +(30367) found +[8141] Forked 30368 +(30368) found +[8140] Forked 30369 +(30369) found +[8139] Forked 30370 +(30370) found +[8138] Forked 30371 +(30371) found +[8137] Forked 30372 +(30372) found +[8136] Forked 30373 +(30373) found +[8135] Forked 30374 +(30374) found +[8134] Forked 30375 +(30375) found +[8133] Forked 30376 +(30376) found +[8132] Forked 30377 +(30377) found +[8131] Forked 30378 +(30378) found +[8130] Forked 30379 +(30379) found +[8129] Forked 30380 +(30380) found +[8128] Forked 30381 +(30381) found +[8127] Forked 30382 +(30382) found +[8126] Forked 30383 +(30383) found +[8125] Forked 30384 +(30384) found +[8124] Forked 30385 +(30385) found +[8123] Forked 30386 +(30386) found +[8122] Forked 30387 +(30387) found +[8121] Forked 30388 +(30388) found +[8120] Forked 30389 +(30389) found +[8119] Forked 30390 +(30390) found +[8118] Forked 30391 +[8117] Forked 30392 +(30391) found +(30392) found +[8116] Forked 30393 +[8115] Forked 30394 +(30393) found +(30394) found +[8114] Forked 30395 +[8113] Forked 30396 +(30395) found +(30396) found +[8112] Forked 30397 +[8111] Forked 30398 +(30397) found +(30398) found +[8110] Forked 30399 +[8109] Forked 30400 +(30399) found +(30400) found +[8108] Forked 30401 +[8107] Forked 30402 +(30401) found +(30402) found +[8106] Forked 30403 +[8105] Forked 30404 +(30403) found +(30404) found +[8104] Forked 30405 +[8103] Forked 30406 +(30405) found +(30406) found +[8102] Forked 30407 +[8101] Forked 30408 +(30407) found +(30408) found +[8100] Forked 30409 +[8099] Forked 30410 +(30409) found +(30410) found +[8098] Forked 30411 +[8097] Forked 30412 +(30411) found +(30412) found +[8096] Forked 30413 +[8095] Forked 30414 +(30413) found +(30414) found +[8094] Forked 30415 +[8093] Forked 30416 +(30415) found +(30416) found +[8092] Forked 30417 +[8091] Forked 30418 +(30417) found +(30418) found +[8090] Forked 30419 +[8089] Forked 30420 +(30419) found +(30420) found +[8088] Forked 30421 +[8087] Forked 30422 +(30421) found +(30422) found +[8086] Forked 30423 +[8085] Forked 30424 +(30423) found +(30424) found +[8084] Forked 30425 +[8083] Forked 30426 +(30425) found +(30426) found +[8082] Forked 30427 +[8081] Forked 30428 +(30427) found +(30428) found +[8080] Forked 30429 +[8079] Forked 30430 +(30429) found +(30430) found +[8078] Forked 30431 +[8077] Forked 30433 +(30431) found +(30433) found +[8076] Forked 30434 +(30434) found +[8075] Forked 30435 +(30435) found +[8074] Forked 30436 +(30436) found +[8073] Forked 30437 +(30437) found +[8072] Forked 30438 +(30438) found +[8071] Forked 30439 +(30439) found +[8070] Forked 30440 +(30440) found +[8069] Forked 30441 +(30441) found +[8068] Forked 30442 +(30442) found +[8067] Forked 30443 +(30443) found +[8066] Forked 30444 +(30444) found +[8065] Forked 30445 +(30445) found +[8064] Forked 30446 +(30446) found +[8063] Forked 30447 +(30447) found +[8062] Forked 30448 +(30448) found +[8061] Forked 30449 +(30449) found +[8060] Forked 30450 +(30450) found +[8059] Forked 30451 +(30451) found +[8058] Forked 30452 +(30452) found +[8057] Forked 30453 +(30453) found +[8056] Forked 30454 +(30454) found +[8055] Forked 30455 +(30455) found +[8054] Forked 30456 +(30456) found +[8053] Forked 30457 +(30457) found +[8052] Forked 30458 +(30458) found +[8051] Forked 30459 +(30459) found +[8050] Forked 30460 +(30460) found +[8049] Forked 30461 +(30461) found +[8048] Forked 30462 +(30462) found +[8047] Forked 30463 +(30463) found +[8046] Forked 30464 +(30464) found +[8045] Forked 30465 +(30465) found +[8044] Forked 30466 +(30466) found +[8043] Forked 30467 +(30467) found +[8042] Forked 30468 +(30468) found +[8041] Forked 30469 +(30469) found +[8040] Forked 30470 +(30470) found +[8039] Forked 30471 +(30471) found +[8038] Forked 30472 +(30472) found +[8037] Forked 30473 +(30473) found +[8036] Forked 30474 +(30474) found +[8035] Forked 30475 +(30475) found +[8034] Forked 30476 +(30476) found +[8033] Forked 30477 +(30477) found +[8032] Forked 30478 +(30478) found +[8031] Forked 30479 +(30479) found +[8030] Forked 30480 +(30480) found +[8029] Forked 30481 +(30481) found +[8028] Forked 30482 +(30482) found +[8027] Forked 30483 +(30483) found +[8026] Forked 30484 +(30484) found +[8025] Forked 30485 +(30485) found +[8024] Forked 30486 +(30486) found +[8023] Forked 30487 +(30487) found +[8022] Forked 30488 +(30488) found +[8021] Forked 30489 +(30489) found +[8020] Forked 30490 +(30490) found +[8019] Forked 30491 +(30491) found +[8018] Forked 30492 +(30492) found +[8017] Forked 30493 +(30493) found +[8016] Forked 30494 +(30494) found +[8015] Forked 30495 +(30495) found +[8014] Forked 30496 +(30496) found +[8013] Forked 30497 +(30497) found +[8012] Forked 30498 +(30498) found +[8011] Forked 30499 +(30499) found +[8010] Forked 30500 +(30500) found +[8009] Forked 30501 +(30501) found +[8008] Forked 30502 +(30502) found +[8007] Forked 30503 +(30503) found +[8006] Forked 30504 +(30504) found +[8005] Forked 30505 +(30505) found +[8004] Forked 30506 +(30506) found +[8003] Forked 30507 +(30507) found +[8002] Forked 30509 +(30509) found +[8001] Forked 30510 +(30510) found +[8000] Forked 30511 +[7999] Forked 30512 +(30511) found +(30512) found +[7998] Forked 30513 +[7997] Forked 30515 +(30513) found +(30515) found +[7996] Forked 30516 +[7995] Forked 30517 +(30516) found +(30517) found +[7994] Forked 30518 +[7993] Forked 30519 +(30518) found +(30519) found +[7992] Forked 30521 +[7991] Forked 30522 +(30521) found +(30522) found +[7990] Forked 30523 +[7989] Forked 30524 +(30523) found +(30524) found +[7988] Forked 30525 +[7987] Forked 30526 +(30525) found +(30526) found +[7986] Forked 30528 +[7985] Forked 30529 +(30528) found +(30529) found +[7984] Forked 30530 +[7983] Forked 30531 +(30530) found +(30531) found +[7982] Forked 30532 +[7981] Forked 30534 +(30532) found +(30534) found +[7980] Forked 30535 +[7979] Forked 30536 +(30535) found +(30536) found +[7978] Forked 30537 +[7977] Forked 30538 +(30537) found +(30538) found +[7976] Forked 30540 +[7975] Forked 30541 +(30540) found +(30541) found +[7974] Forked 30542 +[7973] Forked 30543 +(30542) found +(30543) found +[7972] Forked 30544 +[7971] Forked 30545 +(30544) found +(30545) found +[7970] Forked 30546 +[7969] Forked 30547 +(30546) found +(30547) found +[7968] Forked 30548 +[7967] Forked 30549 +(30548) found +(30549) found +[7966] Forked 30550 +[7965] Forked 30551 +(30550) found +(30551) found +[7964] Forked 30552 +[7963] Forked 30553 +(30552) found +(30553) found +[7962] Forked 30554 +[7961] Forked 30555 +(30554) found +(30555) found +[7960] Forked 30556 +[7959] Forked 30557 +(30556) found +(30557) found +[7958] Forked 30558 +[7957] Forked 30559 +(30558) found +(30559) found +[7956] Forked 30560 +[7955] Forked 30561 +(30560) found +(30561) found +[7954] Forked 30562 +(30562) found +[7953] Forked 30563 +(30563) found +[7952] Forked 30564 +(30564) found +[7951] Forked 30565 +(30565) found +[7950] Forked 30566 +(30566) found +[7949] Forked 30567 +(30567) found +[7948] Forked 30568 +(30568) found +[7947] Forked 30569 +(30569) found +[7946] Forked 30570 +(30570) found +[7945] Forked 30571 +(30571) found +[7944] Forked 30572 +(30572) found +[7943] Forked 30573 +(30573) found +[7942] Forked 30574 +(30574) found +[7941] Forked 30575 +(30575) found +[7940] Forked 30576 +(30576) found +[7939] Forked 30577 +(30577) found +[7938] Forked 30578 +(30578) found +[7937] Forked 30579 +(30579) found +[7936] Forked 30580 +(30580) found +[7935] Forked 30581 +(30581) found +[7934] Forked 30582 +(30582) found +[7933] Forked 30583 +(30583) found +[7932] Forked 30584 +(30584) found +[7931] Forked 30585 +(30585) found +[7930] Forked 30586 +(30586) found +[7929] Forked 30587 +(30587) found +[7928] Forked 30588 +(30588) found +[7927] Forked 30589 +(30589) found +[7926] Forked 30590 +(30590) found +[7925] Forked 30591 +(30591) found +[7924] Forked 30592 +(30592) found +[7923] Forked 30593 +(30593) found +[7922] Forked 30594 +(30594) found +[7921] Forked 30595 +(30595) found +[7920] Forked 30596 +(30596) found +[7919] Forked 30597 +(30597) found +[7918] Forked 30598 +(30598) found +[7917] Forked 30599 +[7916] Forked 30600 +(30599) found +(30600) found +[7915] Forked 30601 +[7914] Forked 30602 +(30601) found +(30602) found +[7913] Forked 30603 +[7912] Forked 30604 +(30603) found +(30604) found +[7911] Forked 30605 +[7910] Forked 30606 +(30605) found +(30606) found +[7909] Forked 30607 +[7908] Forked 30608 +(30607) found +(30608) found +[7907] Forked 30609 +[7906] Forked 30610 +(30609) found +(30610) found +[7905] Forked 30611 +[7904] Forked 30612 +(30611) found +(30612) found +[7903] Forked 30613 +[7902] Forked 30614 +(30613) found +(30614) found +[7901] Forked 30615 +[7900] Forked 30616 +(30615) found +(30616) found +[7899] Forked 30617 +[7898] Forked 30618 +(30617) found +(30618) found +[7897] Forked 30619 +[7896] Forked 30620 +(30619) found +(30620) found +[7895] Forked 30621 +[7894] Forked 30622 +(30621) found +(30622) found +[7893] Forked 30623 +[7892] Forked 30624 +(30623) found +(30624) found +[7891] Forked 30625 +[7890] Forked 30626 +(30625) found +(30626) found +[7889] Forked 30627 +[7888] Forked 30628 +(30627) found +(30628) found +[7887] Forked 30629 +[7886] Forked 30630 +(30629) found +(30630) found +[7885] Forked 30631 +[7884] Forked 30633 +(30631) found +(30633) found +[7883] Forked 30634 +(30634) found +[7882] Forked 30635 +(30635) found +[7881] Forked 30636 +(30636) found +[7880] Forked 30637 +[7879] Forked 30638 +(30637) found +(30638) found +[7878] Forked 30639 +[7877] Forked 30640 +(30639) found +(30640) found +[7876] Forked 30641 +(30641) found +[7875] Forked 30642 +[7874] Forked 30643 +(30642) found +(30643) found +[7873] Forked 30644 +[7872] Forked 30645 +(30644) found +(30645) found +[7871] Forked 30646 +[7870] Forked 30647 +(30646) found +(30647) found +[7869] Forked 30648 +[7868] Forked 30649 +(30648) found +(30649) found +[7867] Forked 30650 +[7866] Forked 30651 +(30650) found +(30651) found +[7865] Forked 30652 +[7864] Forked 30653 +(30652) found +(30653) found +[7863] Forked 30654 +[7862] Forked 30655 +(30654) found +(30655) found +[7861] Forked 30656 +[7860] Forked 30657 +(30656) found +(30657) found +[7859] Forked 30658 +[7858] Forked 30659 +(30658) found +(30659) found +[7857] Forked 30660 +[7856] Forked 30661 +(30660) found +(30661) found +[7855] Forked 30662 +[7854] Forked 30663 +(30662) found +(30663) found +[7853] Forked 30664 +[7852] Forked 30665 +(30664) found +(30665) found +[7851] Forked 30666 +[7850] Forked 30667 +(30666) found +(30667) found +[7849] Forked 30668 +[7848] Forked 30669 +(30668) found +(30669) found +[7847] Forked 30670 +[7846] Forked 30671 +(30670) found +(30671) found +[7845] Forked 30672 +[7844] Forked 30673 +(30672) found +(30673) found +[7843] Forked 30674 +[7842] Forked 30675 +(30674) found +(30675) found +[7841] Forked 30676 +[7840] Forked 30677 +(30676) found +(30677) found +[7839] Forked 30678 +[7838] Forked 30679 +(30678) found +(30679) found +[7837] Forked 30680 +[7836] Forked 30681 +(30680) found +(30681) found +[7835] Forked 30682 +[7834] Forked 30683 +(30682) found +(30683) found +[7833] Forked 30684 +[7832] Forked 30685 +(30684) found +(30685) found +[7831] Forked 30686 +[7830] Forked 30687 +(30686) found +(30687) found +[7829] Forked 30688 +[7828] Forked 30689 +(30688) found +(30689) found +[7827] Forked 30690 +[7826] Forked 30691 +(30690) found +(30691) found +[7825] Forked 30692 +[7824] Forked 30693 +(30692) found +(30693) found +[7823] Forked 30694 +[7822] Forked 30695 +(30694) found +(30695) found +[7821] Forked 30696 +[7820] Forked 30697 +(30696) found +(30697) found +[7819] Forked 30698 +[7818] Forked 30699 +(30698) found +(30699) found +[7817] Forked 30700 +[7816] Forked 30701 +(30700) found +(30701) found +[7815] Forked 30702 +[7814] Forked 30703 +(30702) found +(30703) found +[7813] Forked 30704 +[7812] Forked 30705 +(30704) found +(30705) found +[7811] Forked 30706 +[7810] Forked 30707 +(30706) found +(30707) found +[7809] Forked 30708 +[7808] Forked 30709 +(30708) found +(30709) found +[7807] Forked 30710 +[7806] Forked 30711 +(30710) found +(30711) found +[7805] Forked 30712 +[7804] Forked 30713 +(30712) found +(30713) found +[7803] Forked 30714 +[7802] Forked 30715 +(30714) found +(30715) found +[7801] Forked 30716 +[7800] Forked 30717 +(30716) found +(30717) found +[7799] Forked 30718 +[7798] Forked 30719 +(30718) found +(30719) found +[7797] Forked 30720 +[7796] Forked 30721 +(30720) found +(30721) found +[7795] Forked 30722 +[7794] Forked 30723 +(30722) found +(30723) found +[7793] Forked 30724 +[7792] Forked 30725 +(30724) found +(30725) found +[7791] Forked 30726 +[7790] Forked 30727 +(30726) found +(30727) found +[7789] Forked 30728 +[7788] Forked 30729 +(30728) found +(30729) found +[7787] Forked 30730 +[7786] Forked 30731 +(30730) found +(30731) found +[7785] Forked 30732 +[7784] Forked 30733 +(30732) found +(30733) found +[7783] Forked 30734 +(30734) found +[7782] Forked 30735 +(30735) found +[7781] Forked 30736 +(30736) found +[7780] Forked 30737 +(30737) found +[7779] Forked 30738 +(30738) found +[7778] Forked 30739 +(30739) found +[7777] Forked 30740 +(30740) found +[7776] Forked 30741 +(30741) found +[7775] Forked 30742 +(30742) found +[7774] Forked 30743 +(30743) found +[7773] Forked 30744 +(30744) found +[7772] Forked 30745 +(30745) found +[7771] Forked 30746 +(30746) found +[7770] Forked 30747 +(30747) found +[7769] Forked 30748 +(30748) found +[7768] Forked 30749 +(30749) found +[7767] Forked 30750 +(30750) found +[7766] Forked 30751 +(30751) found +[7765] Forked 30752 +(30752) found +[7764] Forked 30753 +(30753) found +[7763] Forked 30754 +(30754) found +[7762] Forked 30755 +(30755) found +[7761] Forked 30756 +(30756) found +[7760] Forked 30757 +(30757) found +[7759] Forked 30758 +(30758) found +[7758] Forked 30759 +(30759) found +[7757] Forked 30760 +(30760) found +[7756] Forked 30761 +(30761) found +[7755] Forked 30762 +(30762) found +[7754] Forked 30763 +(30763) found +[7753] Forked 30764 +(30764) found +[7752] Forked 30765 +(30765) found +[7751] Forked 30766 +(30766) found +[7750] Forked 30767 +(30767) found +[7749] Forked 30768 +(30768) found +[7748] Forked 30769 +(30769) found +[7747] Forked 30770 +(30770) found +[7746] Forked 30771 +[7745] Forked 30772 +(30771) found +(30772) found +[7744] Forked 30773 +[7743] Forked 30774 +(30773) found +(30774) found +[7742] Forked 30775 +[7741] Forked 30776 +(30775) found +(30776) found +[7740] Forked 30777 +[7739] Forked 30778 +(30777) found +(30778) found +[7738] Forked 30779 +[7737] Forked 30780 +(30779) found +(30780) found +[7736] Forked 30781 +[7735] Forked 30782 +(30781) found +(30782) found +[7734] Forked 30783 +[7733] Forked 30784 +(30783) found +(30784) found +[7732] Forked 30785 +[7731] Forked 30786 +(30785) found +(30786) found +[7730] Forked 30787 +[7729] Forked 30788 +(30787) found +(30788) found +[7728] Forked 30789 +[7727] Forked 30790 +(30789) found +(30790) found +[7726] Forked 30791 +[7725] Forked 30792 +(30791) found +(30792) found +[7724] Forked 30793 +[7723] Forked 30794 +(30793) found +(30794) found +[7722] Forked 30795 +[7721] Forked 30796 +(30795) found +(30796) found +[7720] Forked 30797 +[7719] Forked 30798 +(30797) found +(30798) found +[7718] Forked 30799 +[7717] Forked 30800 +(30799) found +(30800) found +[7716] Forked 30801 +[7715] Forked 30802 +(30801) found +(30802) found +[7714] Forked 30803 +[7713] Forked 30804 +(30803) found +(30804) found +[7712] Forked 30805 +[7711] Forked 30806 +(30805) found +(30806) found +[7710] Forked 30807 +[7709] Forked 30808 +(30807) found +(30808) found +[7708] Forked 30809 +[7707] Forked 30810 +(30809) found +(30810) found +[7706] Forked 30811 +[7705] Forked 30812 +(30811) found +(30812) found +[7704] Forked 30813 +[7703] Forked 30814 +(30813) found +(30814) found +[7702] Forked 30815 +(30815) found +[7701] Forked 30816 +(30816) found +[7700] Forked 30817 +(30817) found +[7699] Forked 30818 +(30818) found +[7698] Forked 30819 +(30819) found +[7697] Forked 30820 +(30820) found +[7696] Forked 30821 +(30821) found +[7695] Forked 30822 +(30822) found +[7694] Forked 30823 +(30823) found +[7693] Forked 30824 +(30824) found +[7692] Forked 30825 +(30825) found +[7691] Forked 30826 +(30826) found +[7690] Forked 30827 +(30827) found +[7689] Forked 30828 +(30828) found +[7688] Forked 30829 +(30829) found +[7687] Forked 30831 +(30831) found +[7686] Forked 30832 +(30832) found +[7685] Forked 30833 +(30833) found +[7684] Forked 30834 +(30834) found +[7683] Forked 30835 +(30835) found +[7682] Forked 30837 +(30837) found +[7681] Forked 30838 +(30838) found +[7680] Forked 30839 +(30839) found +[7679] Forked 30840 +(30840) found +[7678] Forked 30841 +(30841) found +[7677] Forked 30843 +(30843) found +[7676] Forked 30844 +(30844) found +[7675] Forked 30845 +(30845) found +[7674] Forked 30846 +(30846) found +[7673] Forked 30847 +(30847) found +[7672] Forked 30849 +(30849) found +[7671] Forked 30850 +(30850) found +[7670] Forked 30851 +(30851) found +[7669] Forked 30852 +(30852) found +[7668] Forked 30853 +[7667] Forked 30855 +(30853) found +(30855) found +[7666] Forked 30856 +[7665] Forked 30857 +(30856) found +(30857) found +[7664] Forked 30858 +[7663] Forked 30859 +(30858) found +(30859) found +[7662] Forked 30861 +[7661] Forked 30862 +(30861) found +(30862) found +[7660] Forked 30863 +[7659] Forked 30864 +(30863) found +(30864) found +[7658] Forked 30865 +[7657] Forked 30866 +(30865) found +(30866) found +[7656] Forked 30867 +[7655] Forked 30868 +(30867) found +(30868) found +[7654] Forked 30869 +[7653] Forked 30870 +(30869) found +(30870) found +[7652] Forked 30871 +[7651] Forked 30872 +(30871) found +(30872) found +[7650] Forked 30873 +[7649] Forked 30874 +(30873) found +(30874) found +[7648] Forked 30875 +[7647] Forked 30876 +(30875) found +(30876) found +[7646] Forked 30877 +[7645] Forked 30878 +(30877) found +(30878) found +[7644] Forked 30879 +[7643] Forked 30881 +(30879) found +(30881) found +[7642] Forked 30882 +(30882) found +[7641] Forked 30883 +(30883) found +[7640] Forked 30884 +(30884) found +[7639] Forked 30885 +(30885) found +[7638] Forked 30886 +(30886) found +[7637] Forked 30887 +(30887) found +[7636] Forked 30888 +(30888) found +[7635] Forked 30889 +(30889) found +[7634] Forked 30890 +(30890) found +[7633] Forked 30891 +(30891) found +[7632] Forked 30892 +(30892) found +[7631] Forked 30893 +(30893) found +[7630] Forked 30894 +(30894) found +[7629] Forked 30895 +(30895) found +[7628] Forked 30896 +(30896) found +[7627] Forked 30897 +(30897) found +[7626] Forked 30898 +(30898) found +[7625] Forked 30899 +(30899) found +[7624] Forked 30900 +(30900) found +[7623] Forked 30901 +(30901) found +[7622] Forked 30902 +(30902) found +[7621] Forked 30903 +(30903) found +[7620] Forked 30904 +(30904) found +[7619] Forked 30905 +(30905) found +[7618] Forked 30906 +(30906) found +[7617] Forked 30907 +(30907) found +[7616] Forked 30908 +(30908) found +[7615] Forked 30909 +(30909) found +[7614] Forked 30910 +(30910) found +[7613] Forked 30911 +(30911) found +[7612] Forked 30912 +(30912) found +[7611] Forked 30913 +(30913) found +[7610] Forked 30914 +(30914) found +[7609] Forked 30915 +(30915) found +[7608] Forked 30916 +(30916) found +[7607] Forked 30917 +(30917) found +[7606] Forked 30918 +(30918) found +[7605] Forked 30919 +(30919) found +[7604] Forked 30920 +(30920) found +[7603] Forked 30921 +(30921) found +[7602] Forked 30922 +(30922) found +[7601] Forked 30923 +(30923) found +[7600] Forked 30924 +[7599] Forked 30925 +(30924) found +(30925) found +[7598] Forked 30926 +[7597] Forked 30927 +(30926) found +(30927) found +[7596] Forked 30928 +[7595] Forked 30929 +(30928) found +(30929) found +[7594] Forked 30930 +[7593] Forked 30931 +(30930) found +(30931) found +[7592] Forked 30932 +[7591] Forked 30933 +(30932) found +(30933) found +[7590] Forked 30934 +[7589] Forked 30935 +(30934) found +(30935) found +[7588] Forked 30936 +[7587] Forked 30937 +(30936) found +(30937) found +[7586] Forked 30938 +[7585] Forked 30939 +(30938) found +(30939) found +[7584] Forked 30940 +[7583] Forked 30941 +(30940) found +(30941) found +[7582] Forked 30942 +[7581] Forked 30943 +(30942) found +(30943) found +[7580] Forked 30944 +[7579] Forked 30945 +(30944) found +(30945) found +[7578] Forked 30946 +[7577] Forked 30947 +(30946) found +(30947) found +[7576] Forked 30948 +[7575] Forked 30949 +(30948) found +(30949) found +[7574] Forked 30950 +[7573] Forked 30951 +(30950) found +(30951) found +[7572] Forked 30952 +[7571] Forked 30953 +(30952) found +(30953) found +[7570] Forked 30954 +[7569] Forked 30955 +(30954) found +(30955) found +[7568] Forked 30956 +[7567] Forked 30957 +(30956) found +(30957) found +[7566] Forked 30958 +[7565] Forked 30959 +(30958) found +(30959) found +[7564] Forked 30960 +[7563] Forked 30961 +(30960) found +(30961) found +[7562] Forked 30962 +(30962) found +[7561] Forked 30963 +[7560] Forked 30964 +(30963) found +(30964) found +[7559] Forked 30965 +[7558] Forked 30966 +(30965) found +(30966) found +[7557] Forked 30967 +(30967) found +[7556] Forked 30968 +(30968) found +[7555] Forked 30969 +(30969) found +[7554] Forked 30970 +(30970) found +[7553] Forked 30971 +(30971) found +[7552] Forked 30972 +(30972) found +[7551] Forked 30973 +(30973) found +[7550] Forked 30974 +(30974) found +[7549] Forked 30975 +(30975) found +[7548] Forked 30976 +(30976) found +[7547] Forked 30977 +(30977) found +[7546] Forked 30978 +(30978) found +[7545] Forked 30979 +(30979) found +[7544] Forked 30980 +(30980) found +[7543] Forked 30981 +(30981) found +[7542] Forked 30982 +(30982) found +[7541] Forked 30983 +(30983) found +[7540] Forked 30984 +(30984) found +[7539] Forked 30985 +(30985) found +[7538] Forked 30986 +(30986) found +[7537] Forked 30987 +(30987) found +[7536] Forked 30988 +(30988) found +[7535] Forked 30989 +(30989) found +[7534] Forked 30990 +(30990) found +[7533] Forked 30991 +(30991) found +[7532] Forked 30992 +(30992) found +[7531] Forked 30993 +(30993) found +[7530] Forked 30994 +(30994) found +[7529] Forked 30995 +(30995) found +[7528] Forked 30996 +(30996) found +[7527] Forked 30997 +(30997) found +[7526] Forked 30998 +(30998) found +[7525] Forked 30999 +(30999) found +[7524] Forked 31000 +(31000) found +[7523] Forked 31001 +(31001) found +[7522] Forked 31002 +(31002) found +[7521] Forked 31003 +(31003) found +[7520] Forked 31004 +[7519] Forked 31005 +(31004) found +(31005) found +[7518] Forked 31006 +[7517] Forked 31007 +(31006) found +(31007) found +[7516] Forked 31008 +[7515] Forked 31009 +(31008) found +(31009) found +[7514] Forked 31010 +[7513] Forked 31011 +(31010) found +(31011) found +[7512] Forked 31012 +[7511] Forked 31013 +(31012) found +(31013) found +[7510] Forked 31014 +[7509] Forked 31015 +(31014) found +(31015) found +[7508] Forked 31016 +[7507] Forked 31017 +(31016) found +(31017) found +[7506] Forked 31018 +[7505] Forked 31019 +(31018) found +(31019) found +[7504] Forked 31020 +[7503] Forked 31021 +(31020) found +(31021) found +[7502] Forked 31022 +[7501] Forked 31023 +(31022) found +(31023) found +[7500] Forked 31024 +[7499] Forked 31025 +(31024) found +(31025) found +[7498] Forked 31026 +[7497] Forked 31027 +(31026) found +(31027) found +[7496] Forked 31028 +[7495] Forked 31029 +(31028) found +(31029) found +[7494] Forked 31030 +[7493] Forked 31031 +(31030) found +(31031) found +[7492] Forked 31032 +[7491] Forked 31033 +(31032) found +(31033) found +[7490] Forked 31034 +[7489] Forked 31035 +(31034) found +(31035) found +[7488] Forked 31036 +[7487] Forked 31037 +(31036) found +(31037) found +[7486] Forked 31038 +[7485] Forked 31039 +(31038) found +(31039) found +[7484] Forked 31040 +[7483] Forked 31041 +(31040) found +(31041) found +[7482] Forked 31042 +[7481] Forked 31043 +(31042) found +(31043) found +[7480] Forked 31044 +[7479] Forked 31045 +(31044) found +(31045) found +[7478] Forked 31046 +[7477] Forked 31047 +(31046) found +(31047) found +[7476] Forked 31048 +(31048) found +[7475] Forked 31049 +(31049) found +[7474] Forked 31050 +(31050) found +[7473] Forked 31051 +(31051) found +[7472] Forked 31052 +(31052) found +[7471] Forked 31053 +(31053) found +[7470] Forked 31054 +(31054) found +[7469] Forked 31055 +(31055) found +[7468] Forked 31056 +(31056) found +[7467] Forked 31057 +(31057) found +[7466] Forked 31058 +(31058) found +[7465] Forked 31059 +(31059) found +[7464] Forked 31060 +(31060) found +[7463] Forked 31061 +(31061) found +[7462] Forked 31062 +(31062) found +[7461] Forked 31064 +(31064) found +[7460] Forked 31065 +(31065) found +[7459] Forked 31066 +(31066) found +[7458] Forked 31067 +(31067) found +[7457] Forked 31068 +(31068) found +[7456] Forked 31069 +(31069) found +[7455] Forked 31070 +(31070) found +[7454] Forked 31071 +(31071) found +[7453] Forked 31072 +(31072) found +[7452] Forked 31073 +(31073) found +[7451] Forked 31074 +(31074) found +[7450] Forked 31075 +(31075) found +[7449] Forked 31076 +(31076) found +[7448] Forked 31077 +(31077) found +[7447] Forked 31078 +(31078) found +[7446] Forked 31079 +(31079) found +[7445] Forked 31080 +(31080) found +[7444] Forked 31081 +(31081) found +[7443] Forked 31082 +(31082) found +[7442] Forked 31083 +(31083) found +[7441] Forked 31084 +(31084) found +[7440] Forked 31085 +(31085) found +[7439] Forked 31086 +[7438] Forked 31087 +(31086) found +(31087) found +[7437] Forked 31088 +[7436] Forked 31089 +(31088) found +(31089) found +[7435] Forked 31090 +[7434] Forked 31091 +(31090) found +(31091) found +[7433] Forked 31092 +[7432] Forked 31093 +(31092) found +(31093) found +[7431] Forked 31094 +[7430] Forked 31095 +(31094) found +(31095) found +[7429] Forked 31096 +[7428] Forked 31097 +(31096) found +(31097) found +[7427] Forked 31098 +[7426] Forked 31099 +(31098) found +(31099) found +[7425] Forked 31100 +[7424] Forked 31101 +(31100) found +(31101) found +[7423] Forked 31102 +[7422] Forked 31103 +(31102) found +(31103) found +[7421] Forked 31104 +[7420] Forked 31105 +(31104) found +(31105) found +[7419] Forked 31106 +[7418] Forked 31107 +(31106) found +(31107) found +[7417] Forked 31108 +[7416] Forked 31109 +(31108) found +(31109) found +[7415] Forked 31110 +[7414] Forked 31111 +(31110) found +(31111) found +[7413] Forked 31112 +[7412] Forked 31113 +(31112) found +(31113) found +[7411] Forked 31114 +[7410] Forked 31115 +(31114) found +(31115) found +[7409] Forked 31116 +[7408] Forked 31117 +(31116) found +(31117) found +[7407] Forked 31118 +[7406] Forked 31119 +(31118) found +(31119) found +[7405] Forked 31120 +[7404] Forked 31121 +(31120) found +(31121) found +[7403] Forked 31122 +[7402] Forked 31123 +(31122) found +(31123) found +[7401] Forked 31124 +[7400] Forked 31125 +(31124) found +(31125) found +[7399] Forked 31126 +[7398] Forked 31127 +(31126) found +(31127) found +[7397] Forked 31128 +[7396] Forked 31129 +(31128) found +(31129) found +[7395] Forked 31130 +(31130) found +[7394] Forked 31131 +(31131) found +[7393] Forked 31132 +(31132) found +[7392] Forked 31133 +(31133) found +[7391] Forked 31134 +(31134) found +[7390] Forked 31135 +(31135) found +[7389] Forked 31136 +(31136) found +[7388] Forked 31137 +(31137) found +[7387] Forked 31138 +(31138) found +[7386] Forked 31139 +(31139) found +[7385] Forked 31140 +(31140) found +[7384] Forked 31141 +(31141) found +[7383] Forked 31142 +(31142) found +[7382] Forked 31143 +(31143) found +[7381] Forked 31144 +(31144) found +[7380] Forked 31145 +(31145) found +[7379] Forked 31146 +(31146) found +[7378] Forked 31147 +(31147) found +[7377] Forked 31148 +(31148) found +[7376] Forked 31149 +(31149) found +[7375] Forked 31150 +(31150) found +[7374] Forked 31151 +(31151) found +[7373] Forked 31152 +(31152) found +[7372] Forked 31153 +(31153) found +[7371] Forked 31154 +(31154) found +[7370] Forked 31155 +(31155) found +[7369] Forked 31156 +(31156) found +[7368] Forked 31157 +(31157) found +[7367] Forked 31158 +(31158) found +[7366] Forked 31159 +(31159) found +[7365] Forked 31160 +(31160) found +[7364] Forked 31161 +(31161) found +[7363] Forked 31162 +(31162) found +[7362] Forked 31163 +(31163) found +[7361] Forked 31164 +[7360] Forked 31165 +(31164) found +(31165) found +[7359] Forked 31166 +[7358] Forked 31167 +(31166) found +(31167) found +[7357] Forked 31168 +[7356] Forked 31169 +(31168) found +(31169) found +[7355] Forked 31170 +[7354] Forked 31171 +(31170) found +(31171) found +[7353] Forked 31172 +[7352] Forked 31173 +(31172) found +(31173) found +[7351] Forked 31174 +[7350] Forked 31175 +(31174) found +(31175) found +[7349] Forked 31176 +[7348] Forked 31177 +(31176) found +(31177) found +[7347] Forked 31178 +[7346] Forked 31179 +(31178) found +(31179) found +[7345] Forked 31180 +[7344] Forked 31181 +(31180) found +(31181) found +[7343] Forked 31182 +[7342] Forked 31183 +(31182) found +(31183) found +[7341] Forked 31184 +[7340] Forked 31185 +(31184) found +(31185) found +[7339] Forked 31186 +[7338] Forked 31187 +(31186) found +(31187) found +[7337] Forked 31188 +[7336] Forked 31189 +(31188) found +(31189) found +[7335] Forked 31190 +[7334] Forked 31191 +(31190) found +(31191) found +[7333] Forked 31192 +[7332] Forked 31193 +(31192) found +(31193) found +[7331] Forked 31194 +[7330] Forked 31195 +(31194) found +(31195) found +[7329] Forked 31196 +[7328] Forked 31197 +(31196) found +(31197) found +[7327] Forked 31198 +[7326] Forked 31199 +(31198) found +(31199) found +[7325] Forked 31200 +[7324] Forked 31201 +(31200) found +(31201) found +[7323] Forked 31202 +[7322] Forked 31203 +(31202) found +(31203) found +[7321] Forked 31204 +[7320] Forked 31205 +(31204) found +(31205) found +[7319] Forked 31206 +[7318] Forked 31207 +(31206) found +(31207) found +[7317] Forked 31208 +[7316] Forked 31209 +(31208) found +(31209) found +[7315] Forked 31210 +(31210) found +[7314] Forked 31211 +(31211) found +[7313] Forked 31212 +(31212) found +[7312] Forked 31213 +(31213) found +[7311] Forked 31214 +(31214) found +[7310] Forked 31215 +(31215) found +[7309] Forked 31216 +(31216) found +[7308] Forked 31217 +(31217) found +[7307] Forked 31218 +(31218) found +[7306] Forked 31219 +(31219) found +[7305] Forked 31220 +(31220) found +[7304] Forked 31221 +(31221) found +[7303] Forked 31222 +(31222) found +[7302] Forked 31223 +(31223) found +[7301] Forked 31224 +(31224) found +[7300] Forked 31225 +(31225) found +[7299] Forked 31226 +(31226) found +[7298] Forked 31227 +(31227) found +[7297] Forked 31228 +(31228) found +[7296] Forked 31229 +(31229) found +[7295] Forked 31230 +(31230) found +[7294] Forked 31231 +(31231) found +[7293] Forked 31232 +(31232) found +[7292] Forked 31233 +(31233) found +[7291] Forked 31234 +(31234) found +[7290] Forked 31235 +(31235) found +[7289] Forked 31236 +(31236) found +[7288] Forked 31237 +(31237) found +[7287] Forked 31238 +(31238) found +[7286] Forked 31239 +(31239) found +[7285] Forked 31240 +[7284] Forked 31241 +(31240) found +(31241) found +[7283] Forked 31242 +[7282] Forked 31243 +(31242) found +(31243) found +[7281] Forked 31244 +[7280] Forked 31245 +(31244) found +(31245) found +[7279] Forked 31246 +[7278] Forked 31247 +(31246) found +(31247) found +[7277] Forked 31248 +[7276] Forked 31249 +(31248) found +(31249) found +[7275] Forked 31250 +[7274] Forked 31251 +(31250) found +(31251) found +[7273] Forked 31252 +[7272] Forked 31253 +(31252) found +(31253) found +[7271] Forked 31254 +[7270] Forked 31255 +(31254) found +(31255) found +[7269] Forked 31256 +[7268] Forked 31257 +(31256) found +(31257) found +[7267] Forked 31258 +[7266] Forked 31259 +(31258) found +(31259) found +[7265] Forked 31260 +[7264] Forked 31261 +(31260) found +(31261) found +[7263] Forked 31262 +[7262] Forked 31263 +(31262) found +(31263) found +[7261] Forked 31264 +[7260] Forked 31265 +(31264) found +(31265) found +[7259] Forked 31266 +[7258] Forked 31267 +(31266) found +(31267) found +[7257] Forked 31268 +[7256] Forked 31269 +(31268) found +(31269) found +[7255] Forked 31270 +[7254] Forked 31271 +(31270) found +(31271) found +[7253] Forked 31272 +[7252] Forked 31273 +(31272) found +(31273) found +[7251] Forked 31274 +[7250] Forked 31275 +(31274) found +(31275) found +[7249] Forked 31276 +[7248] Forked 31277 +(31276) found +(31277) found +[7247] Forked 31278 +[7246] Forked 31279 +(31278) found +(31279) found +[7245] Forked 31280 +[7244] Forked 31281 +(31280) found +(31281) found +[7243] Forked 31282 +[7242] Forked 31283 +(31282) found +(31283) found +[7241] Forked 31284 +[7240] Forked 31285 +(31285) found +(31284) found +[7239] Forked 31286 +(31286) found +[7238] Forked 31287 +(31287) found +[7237] Forked 31288 +(31288) found +[7236] Forked 31289 +(31289) found +[7235] Forked 31290 +(31290) found +[7234] Forked 31291 +(31291) found +[7233] Forked 31292 +(31292) found +[7232] Forked 31293 +(31293) found +[7231] Forked 31294 +(31294) found +[7230] Forked 31295 +(31295) found +[7229] Forked 31296 +(31296) found +[7228] Forked 31297 +(31297) found +[7227] Forked 31298 +(31298) found +[7226] Forked 31299 +(31299) found +[7225] Forked 31300 +(31300) found +[7224] Forked 31301 +(31301) found +[7223] Forked 31302 +(31302) found +[7222] Forked 31303 +(31303) found +[7221] Forked 31304 +(31304) found +[7220] Forked 31305 +(31305) found +[7219] Forked 31306 +(31306) found +[7218] Forked 31307 +(31307) found +[7217] Forked 31308 +(31308) found +[7216] Forked 31309 +(31309) found +[7215] Forked 31310 +(31310) found +[7214] Forked 31311 +(31311) found +[7213] Forked 31312 +(31312) found +[7212] Forked 31313 +(31313) found +[7211] Forked 31314 +(31314) found +[7210] Forked 31315 +(31315) found +[7209] Forked 31316 +(31316) found +[7208] Forked 31317 +(31317) found +[7207] Forked 31318 +(31318) found +[7206] Forked 31319 +(31319) found +[7205] Forked 31320 +[7204] Forked 31321 +(31320) found +(31321) found +[7203] Forked 31322 +[7202] Forked 31323 +(31323) found +(31322) found +[7201] Forked 31324 +(31324) found +[7200] Forked 31325 +(31325) found +[7199] Forked 31326 +(31326) found +[7198] Forked 31327 +(31327) found +[7197] Forked 31328 +(31328) found +[7196] Forked 31329 +(31329) found +[7195] Forked 31330 +(31330) found +[7194] Forked 31331 +(31331) found +[7193] Forked 31332 +(31332) found +[7192] Forked 31333 +(31333) found +[7191] Forked 31334 +(31334) found +[7190] Forked 31335 +(31335) found +[7189] Forked 31336 +(31336) found +[7188] Forked 31337 +(31337) found +[7187] Forked 31338 +(31338) found +[7186] Forked 31339 +(31339) found +[7185] Forked 31340 +(31340) found +[7184] Forked 31341 +(31341) found +[7183] Forked 31342 +(31342) found +[7182] Forked 31343 +(31343) found +[7181] Forked 31344 +(31344) found +[7180] Forked 31345 +(31345) found +[7179] Forked 31346 +(31346) found +[7178] Forked 31347 +(31347) found +[7177] Forked 31348 +(31348) found +[7176] Forked 31349 +(31349) found +[7175] Forked 31350 +(31350) found +[7174] Forked 31351 +(31351) found +[7173] Forked 31352 +(31352) found +[7172] Forked 31353 +(31353) found +[7171] Forked 31354 +(31354) found +[7170] Forked 31355 +(31355) found +[7169] Forked 31356 +(31356) found +[7168] Forked 31357 +(31357) found +[7167] Forked 31358 +(31358) found +[7166] Forked 31359 +(31359) found +[7165] Forked 31360 +(31360) found +[7164] Forked 31361 +(31361) found +[7163] Forked 31362 +(31362) found +[7162] Forked 31363 +(31363) found +[7161] Forked 31364 +(31364) found +[7160] Forked 31365 +(31365) found +[7159] Forked 31366 +(31366) found +[7158] Forked 31367 +(31367) found +[7157] Forked 31368 +(31368) found +[7156] Forked 31369 +(31369) found +[7155] Forked 31370 +(31370) found +[7154] Forked 31371 +(31371) found +[7153] Forked 31372 +(31372) found +[7152] Forked 31373 +(31373) found +[7151] Forked 31374 +(31374) found +[7150] Forked 31375 +(31375) found +[7149] Forked 31376 +(31376) found +[7148] Forked 31377 +(31377) found +[7147] Forked 31378 +(31378) found +[7146] Forked 31379 +(31379) found +[7145] Forked 31380 +(31380) found +[7144] Forked 31381 +(31381) found +[7143] Forked 31382 +(31382) found +[7142] Forked 31383 +(31383) found +[7141] Forked 31384 +(31384) found +[7140] Forked 31385 +(31385) found +[7139] Forked 31386 +(31386) found +[7138] Forked 31387 +(31387) found +[7137] Forked 31388 +(31388) found +[7136] Forked 31389 +(31389) found +[7135] Forked 31390 +(31390) found +[7134] Forked 31391 +(31391) found +[7133] Forked 31392 +(31392) found +[7132] Forked 31393 +(31393) found +[7131] Forked 31394 +(31394) found +[7130] Forked 31395 +(31395) found +[7129] Forked 31396 +(31396) found +[7128] Forked 31397 +(31397) found +[7127] Forked 31398 +(31398) found +[7126] Forked 31399 +(31399) found +[7125] Forked 31400 +(31400) found +[7124] Forked 31401 +(31401) found +[7123] Forked 31402 +(31402) found +[7122] Forked 31403 +(31403) found +[7121] Forked 31404 +(31404) found +[7120] Forked 31405 +(31405) found +[7119] Forked 31406 +(31406) found +[7118] Forked 31407 +(31407) found +[7117] Forked 31408 +(31408) found +[7116] Forked 31409 +(31409) found +[7115] Forked 31410 +(31410) found +[7114] Forked 31411 +(31411) found +[7113] Forked 31412 +(31412) found +[7112] Forked 31413 +(31413) found +[7111] Forked 31414 +(31414) found +[7110] Forked 31415 +(31415) found +[7109] Forked 31416 +(31416) found +[7108] Forked 31417 +(31417) found +[7107] Forked 31418 +(31418) found +[7106] Forked 31419 +(31419) found +[7105] Forked 31420 +(31420) found +[7104] Forked 31421 +(31421) found +[7103] Forked 31422 +(31422) found +[7102] Forked 31423 +(31423) found +[7101] Forked 31424 +(31424) found +[7100] Forked 31425 +(31425) found +[7099] Forked 31426 +[7098] Forked 31427 +(31426) found +(31427) found +[7097] Forked 31428 +[7096] Forked 31429 +(31428) found +(31429) found +[7095] Forked 31430 +[7094] Forked 31431 +(31430) found +(31431) found +[7093] Forked 31432 +[7092] Forked 31433 +(31432) found +(31433) found +[7091] Forked 31434 +[7090] Forked 31435 +(31434) found +(31435) found +[7089] Forked 31436 +[7088] Forked 31437 +(31436) found +(31437) found +[7087] Forked 31438 +[7086] Forked 31439 +(31438) found +(31439) found +[7085] Forked 31440 +[7084] Forked 31441 +(31440) found +(31441) found +[7083] Forked 31442 +[7082] Forked 31443 +(31442) found +(31443) found +[7081] Forked 31444 +[7080] Forked 31445 +(31444) found +(31445) found +[7079] Forked 31446 +[7078] Forked 31447 +(31446) found +(31447) found +[7077] Forked 31448 +[7076] Forked 31449 +(31448) found +(31449) found +[7075] Forked 31450 +[7074] Forked 31451 +(31450) found +(31451) found +[7073] Forked 31452 +[7072] Forked 31453 +(31452) found +(31453) found +[7071] Forked 31454 +[7070] Forked 31455 +(31454) found +(31455) found +[7069] Forked 31456 +[7068] Forked 31457 +(31456) found +(31457) found +[7067] Forked 31458 +[7066] Forked 31459 +(31458) found +(31459) found +[7065] Forked 31460 +[7064] Forked 31461 +(31460) found +(31461) found +[7063] Forked 31462 +[7062] Forked 31463 +(31462) found +(31463) found +[7061] Forked 31464 +[7060] Forked 31465 +(31464) found +(31465) found +[7059] Forked 31466 +[7058] Forked 31467 +(31466) found +(31467) found +[7057] Forked 31468 +[7056] Forked 31469 +(31468) found +(31469) found +[7055] Forked 31470 +[7054] Forked 31471 +(31470) found +(31471) found +[7053] Forked 31472 +[7052] Forked 31473 +(31472) found +(31473) found +[7051] Forked 31474 +[7050] Forked 31475 +(31474) found +(31475) found +[7049] Forked 31476 +[7048] Forked 31477 +(31476) found +(31477) found +[7047] Forked 31478 +[7046] Forked 31479 +(31478) found +(31479) found +[7045] Forked 31480 +[7044] Forked 31481 +(31480) found +(31481) found +[7043] Forked 31482 +[7042] Forked 31483 +(31482) found +(31483) found +[7041] Forked 31484 +[7040] Forked 31485 +(31484) found +(31485) found +[7039] Forked 31486 +[7038] Forked 31487 +(31486) found +(31487) found +[7037] Forked 31488 +[7036] Forked 31489 +(31488) found +(31489) found +[7035] Forked 31490 +[7034] Forked 31491 +(31490) found +(31491) found +[7033] Forked 31492 +[7032] Forked 31493 +(31492) found +(31493) found +[7031] Forked 31494 +[7030] Forked 31495 +(31494) found +(31495) found +[7029] Forked 31496 +[7028] Forked 31497 +(31496) found +(31497) found +[7027] Forked 31498 +[7026] Forked 31499 +(31498) found +(31499) found +[7025] Forked 31500 +[7024] Forked 31501 +(31500) found +(31501) found +[7023] Forked 31502 +[7022] Forked 31503 +(31502) found +(31503) found +[7021] Forked 31504 +[7020] Forked 31505 +(31504) found +(31505) found +[7019] Forked 31506 +[7018] Forked 31507 +(31506) found +(31507) found +[7017] Forked 31508 +[7016] Forked 31509 +(31508) found +(31509) found +[7015] Forked 31510 +[7014] Forked 31511 +(31510) found +(31511) found +[7013] Forked 31512 +[7012] Forked 31513 +(31512) found +(31513) found +[7011] Forked 31514 +[7010] Forked 31515 +(31514) found +(31515) found +[7009] Forked 31516 +[7008] Forked 31517 +(31516) found +(31517) found +[7007] Forked 31518 +[7006] Forked 31519 +(31518) found +(31519) found +[7005] Forked 31520 +[7004] Forked 31521 +(31520) found +(31521) found +[7003] Forked 31522 +[7002] Forked 31523 +(31522) found +(31523) found +[7001] Forked 31524 +[7000] Forked 31525 +(31524) found +(31525) found +[6999] Forked 31526 +[6998] Forked 31527 +(31526) found +(31527) found +[6997] Forked 31528 +[6996] Forked 31529 +(31528) found +(31529) found +[6995] Forked 31530 +[6994] Forked 31531 +(31530) found +(31531) found +[6993] Forked 31532 +[6992] Forked 31533 +(31532) found +(31533) found +[6991] Forked 31534 +[6990] Forked 31535 +(31534) found +(31535) found +[6989] Forked 31536 +[6988] Forked 31537 +(31536) found +(31537) found +[6987] Forked 31538 +[6986] Forked 31539 +(31538) found +(31539) found +[6985] Forked 31540 +[6984] Forked 31541 +(31540) found +(31541) found +[6983] Forked 31542 +[6982] Forked 31543 +(31542) found +(31543) found +[6981] Forked 31544 +[6980] Forked 31545 +(31544) found +(31545) found +[6979] Forked 31546 +[6978] Forked 31547 +(31546) found +(31547) found +[6977] Forked 31548 +[6976] Forked 31549 +(31548) found +(31549) found +[6975] Forked 31550 +[6974] Forked 31551 +(31550) found +(31551) found +[6973] Forked 31552 +[6972] Forked 31553 +(31552) found +(31553) found +[6971] Forked 31554 +[6970] Forked 31555 +(31554) found +(31555) found +[6969] Forked 31556 +[6968] Forked 31557 +(31556) found +(31557) found +[6967] Forked 31558 +[6966] Forked 31559 +(31558) found +(31559) found +[6965] Forked 31560 +[6964] Forked 31561 +(31560) found +(31561) found +[6963] Forked 31562 +[6962] Forked 31563 +(31562) found +(31563) found +[6961] Forked 31564 +[6960] Forked 31565 +(31564) found +(31565) found +[6959] Forked 31566 +[6958] Forked 31567 +(31566) found +(31567) found +[6957] Forked 31568 +[6956] Forked 31569 +(31568) found +(31569) found +[6955] Forked 31570 +[6954] Forked 31571 +(31570) found +(31571) found +[6953] Forked 31572 +[6952] Forked 31573 +(31572) found +(31573) found +[6951] Forked 31574 +[6950] Forked 31575 +(31574) found +(31575) found +[6949] Forked 31576 +[6948] Forked 31577 +(31576) found +(31577) found +[6947] Forked 31578 +[6946] Forked 31579 +(31578) found +(31579) found +[6945] Forked 31580 +[6944] Forked 31581 +(31580) found +(31581) found +[6943] Forked 31582 +[6942] Forked 31583 +(31582) found +(31583) found +[6941] Forked 31584 +[6940] Forked 31585 +(31584) found +(31585) found +[6939] Forked 31586 +[6938] Forked 31587 +(31586) found +(31587) found +[6937] Forked 31588 +[6936] Forked 31589 +(31588) found +(31589) found +[6935] Forked 31590 +[6934] Forked 31591 +(31590) found +(31591) found +[6933] Forked 31592 +[6932] Forked 31593 +(31592) found +(31593) found +[6931] Forked 31594 +[6930] Forked 31595 +(31594) found +(31595) found +[6929] Forked 31596 +[6928] Forked 31597 +(31596) found +(31597) found +[6927] Forked 31598 +[6926] Forked 31599 +(31598) found +(31599) found +[6925] Forked 31600 +[6924] Forked 31601 +(31600) found +(31601) found +[6923] Forked 31602 +[6922] Forked 31603 +(31602) found +(31603) found +[6921] Forked 31604 +[6920] Forked 31605 +(31604) found +(31605) found +[6919] Forked 31606 +[6918] Forked 31607 +(31606) found +(31607) found +[6917] Forked 31608 +[6916] Forked 31609 +(31608) found +(31609) found +[6915] Forked 31610 +(31610) found +[6914] Forked 31611 +(31611) found +[6913] Forked 31612 +(31612) found +[6912] Forked 31613 +(31613) found +[6911] Forked 31614 +(31614) found +[6910] Forked 31615 +[6909] Forked 31616 +(31615) found +(31616) found +[6908] Forked 31617 +[6907] Forked 31618 +(31617) found +(31618) found +[6906] Forked 31619 +[6905] Forked 31620 +(31619) found +(31620) found +[6904] Forked 31621 +[6903] Forked 31622 +(31621) found +(31622) found +[6902] Forked 31623 +[6901] Forked 31624 +(31623) found +(31624) found +[6900] Forked 31625 +[6899] Forked 31626 +(31625) found +(31626) found +[6898] Forked 31627 +[6897] Forked 31628 +(31627) found +(31628) found +[6896] Forked 31629 +[6895] Forked 31630 +(31629) found +(31630) found +[6894] Forked 31631 +[6893] Forked 31632 +(31631) found +(31632) found +[6892] Forked 31633 +[6891] Forked 31634 +(31633) found +(31634) found +[6890] Forked 31635 +[6889] Forked 31636 +(31635) found +(31636) found +[6888] Forked 31637 +[6887] Forked 31638 +(31637) found +(31638) found +[6886] Forked 31639 +[6885] Forked 31640 +(31639) found +(31640) found +[6884] Forked 31641 +[6883] Forked 31642 +(31641) found +(31642) found +[6882] Forked 31643 +[6881] Forked 31644 +(31643) found +(31644) found +[6880] Forked 31645 +[6879] Forked 31646 +(31645) found +(31646) found +[6878] Forked 31647 +[6877] Forked 31648 +(31647) found +(31648) found +[6876] Forked 31649 +[6875] Forked 31650 +(31649) found +(31650) found +[6874] Forked 31651 +[6873] Forked 31652 +(31651) found +(31652) found +[6872] Forked 31653 +[6871] Forked 31654 +(31653) found +(31654) found +[6870] Forked 31655 +[6869] Forked 31656 +(31655) found +(31656) found +[6868] Forked 31657 +[6867] Forked 31658 +(31657) found +(31658) found +[6866] Forked 31659 +[6865] Forked 31660 +(31659) found +(31660) found +[6864] Forked 31661 +[6863] Forked 31662 +(31661) found +(31662) found +[6862] Forked 31663 +[6861] Forked 31664 +(31663) found +(31664) found +[6860] Forked 31665 +[6859] Forked 31666 +(31665) found +(31666) found +[6858] Forked 31667 +[6857] Forked 31668 +(31667) found +(31668) found +[6856] Forked 31669 +[6855] Forked 31670 +(31669) found +(31670) found +[6854] Forked 31671 +[6853] Forked 31672 +(31671) found +(31672) found +[6852] Forked 31673 +[6851] Forked 31674 +(31673) found +(31674) found +[6850] Forked 31675 +[6849] Forked 31676 +(31675) found +(31676) found +[6848] Forked 31677 +[6847] Forked 31678 +(31677) found +(31678) found +[6846] Forked 31679 +[6845] Forked 31680 +(31679) found +(31680) found +[6844] Forked 31681 +[6843] Forked 31682 +(31681) found +(31682) found +[6842] Forked 31683 +[6841] Forked 31684 +(31683) found +(31684) found +[6840] Forked 31685 +[6839] Forked 31686 +(31685) found +(31686) found +[6838] Forked 31687 +[6837] Forked 31688 +(31687) found +(31688) found +[6836] Forked 31689 +[6835] Forked 31690 +(31689) found +(31690) found +[6834] Forked 31691 +[6833] Forked 31692 +(31691) found +(31692) found +[6832] Forked 31693 +[6831] Forked 31694 +(31693) found +(31694) found +[6830] Forked 31695 +[6829] Forked 31696 +(31695) found +(31696) found +[6828] Forked 31697 +[6827] Forked 31698 +(31697) found +(31698) found +[6826] Forked 31699 +[6825] Forked 31700 +(31699) found +(31700) found +[6824] Forked 31701 +[6823] Forked 31702 +(31701) found +(31702) found +[6822] Forked 31703 +[6821] Forked 31704 +(31703) found +(31704) found +[6820] Forked 31705 +[6819] Forked 31706 +(31706) found +(31705) found +[6818] Forked 31707 +(31707) found +[6817] Forked 31708 +(31708) found +[6816] Forked 31709 +(31709) found +[6815] Forked 31710 +(31710) found +[6814] Forked 31711 +(31711) found +[6813] Forked 31712 +(31712) found +[6812] Forked 31713 +(31713) found +[6811] Forked 31714 +(31714) found +[6810] Forked 31715 +(31715) found +[6809] Forked 31716 +(31716) found +[6808] Forked 31717 +(31717) found +[6807] Forked 31718 +(31718) found +[6806] Forked 31719 +(31719) found +[6805] Forked 31720 +(31720) found +[6804] Forked 31721 +(31721) found +[6803] Forked 31722 +(31722) found +[6802] Forked 31723 +(31723) found +[6801] Forked 31724 +(31724) found +[6800] Forked 31725 +(31725) found +[6799] Forked 31726 +(31726) found +[6798] Forked 31727 +(31727) found +[6797] Forked 31728 +(31728) found +[6796] Forked 31729 +(31729) found +[6795] Forked 31730 +(31730) found +[6794] Forked 31731 +(31731) found +[6793] Forked 31732 +(31732) found +[6792] Forked 31733 +(31733) found +[6791] Forked 31734 +(31734) found +[6790] Forked 31735 +(31735) found +[6789] Forked 31736 +(31736) found +[6788] Forked 31737 +(31737) found +[6787] Forked 31738 +(31738) found +[6786] Forked 31739 +(31739) found +[6785] Forked 31740 +(31740) found +[6784] Forked 31741 +(31741) found +[6783] Forked 31742 +[6782] Forked 31743 +(31742) found +(31743) found +[6781] Forked 31744 +[6780] Forked 31745 +(31744) found +(31745) found +[6779] Forked 31746 +[6778] Forked 31747 +(31746) found +(31747) found +[6777] Forked 31748 +[6776] Forked 31749 +(31748) found +(31749) found +[6775] Forked 31750 +[6774] Forked 31751 +(31750) found +(31751) found +[6773] Forked 31752 +[6772] Forked 31753 +(31752) found +(31753) found +[6771] Forked 31754 +[6770] Forked 31755 +(31754) found +(31755) found +[6769] Forked 31756 +[6768] Forked 31757 +(31756) found +(31757) found +[6767] Forked 31758 +[6766] Forked 31759 +(31758) found +(31759) found +[6765] Forked 31760 +[6764] Forked 31761 +(31760) found +(31761) found +[6763] Forked 31762 +[6762] Forked 31763 +(31762) found +(31763) found +[6761] Forked 31764 +[6760] Forked 31765 +(31764) found +(31765) found +[6759] Forked 31766 +[6758] Forked 31767 +(31766) found +(31767) found +[6757] Forked 31768 +[6756] Forked 31769 +(31768) found +(31769) found +[6755] Forked 31770 +[6754] Forked 31771 +(31770) found +(31771) found +[6753] Forked 31772 +[6752] Forked 31773 +(31772) found +(31773) found +[6751] Forked 31774 +[6750] Forked 31775 +(31774) found +(31775) found +[6749] Forked 31776 +[6748] Forked 31777 +(31776) found +(31777) found +[6747] Forked 31778 +[6746] Forked 31779 +(31778) found +(31779) found +[6745] Forked 31780 +[6744] Forked 31781 +(31780) found +(31781) found +[6743] Forked 31782 +[6742] Forked 31783 +(31782) found +(31783) found +[6741] Forked 31784 +[6740] Forked 31785 +(31784) found +(31785) found +[6739] Forked 31786 +[6738] Forked 31787 +(31786) found +(31787) found +[6737] Forked 31788 +[6736] Forked 31789 +(31788) found +(31789) found +[6735] Forked 31790 +[6734] Forked 31791 +(31790) found +(31791) found +[6733] Forked 31792 +[6732] Forked 31793 +(31792) found +(31793) found +[6731] Forked 31794 +[6730] Forked 31795 +(31794) found +(31795) found +[6729] Forked 31796 +[6728] Forked 31797 +(31796) found +(31797) found +[6727] Forked 31798 +[6726] Forked 31799 +(31798) found +(31799) found +[6725] Forked 31800 +[6724] Forked 31801 +(31800) found +(31801) found +[6723] Forked 31802 +[6722] Forked 31803 +(31802) found +(31803) found +[6721] Forked 31804 +[6720] Forked 31805 +(31804) found +(31805) found +[6719] Forked 31806 +[6718] Forked 31807 +(31806) found +(31807) found +[6717] Forked 31808 +[6716] Forked 31809 +(31808) found +(31809) found +[6715] Forked 31810 +[6714] Forked 31811 +(31810) found +(31811) found +[6713] Forked 31812 +[6712] Forked 31813 +(31812) found +(31813) found +[6711] Forked 31814 +[6710] Forked 31815 +(31814) found +(31815) found +[6709] Forked 31816 +[6708] Forked 31817 +(31816) found +(31817) found +[6707] Forked 31818 +[6706] Forked 31819 +(31818) found +(31819) found +[6705] Forked 31820 +[6704] Forked 31821 +(31820) found +(31821) found +[6703] Forked 31822 +[6702] Forked 31823 +(31822) found +(31823) found +[6701] Forked 31824 +[6700] Forked 31825 +(31824) found +(31825) found +[6699] Forked 31826 +[6698] Forked 31827 +(31826) found +(31827) found +[6697] Forked 31828 +[6696] Forked 31829 +(31828) found +(31829) found +[6695] Forked 31830 +[6694] Forked 31831 +(31830) found +(31831) found +[6693] Forked 31832 +[6692] Forked 31833 +(31832) found +(31833) found +[6691] Forked 31834 +[6690] Forked 31835 +(31834) found +(31835) found +[6689] Forked 31836 +[6688] Forked 31837 +(31836) found +(31837) found +[6687] Forked 31838 +[6686] Forked 31839 +(31838) found +(31839) found +[6685] Forked 31840 +[6684] Forked 31842 +(31840) found +(31842) found +[6683] Forked 31843 +(31843) found +[6682] Forked 31844 +(31844) found +[6681] Forked 31845 +(31845) found +[6680] Forked 31846 +(31846) found +[6679] Forked 31847 +(31847) found +[6678] Forked 31848 +(31848) found +[6677] Forked 31849 +(31849) found +[6676] Forked 31850 +(31850) found +[6675] Forked 31851 +(31851) found +[6674] Forked 31852 +(31852) found +[6673] Forked 31853 +(31853) found +[6672] Forked 31854 +(31854) found +[6671] Forked 31855 +(31855) found +[6670] Forked 31856 +(31856) found +[6669] Forked 31857 +(31857) found +[6668] Forked 31858 +(31858) found +[6667] Forked 31859 +(31859) found +[6666] Forked 31860 +(31860) found +[6665] Forked 31861 +(31861) found +[6664] Forked 31862 +(31862) found +[6663] Forked 31863 +(31863) found +[6662] Forked 31864 +(31864) found +[6661] Forked 31865 +(31865) found +[6660] Forked 31866 +(31866) found +[6659] Forked 31867 +(31867) found +[6658] Forked 31868 +(31868) found +[6657] Forked 31869 +(31869) found +[6656] Forked 31870 +(31870) found +[6655] Forked 31871 +(31871) found +[6654] Forked 31872 +(31872) found +[6653] Forked 31873 +(31873) found +[6652] Forked 31874 +(31874) found +[6651] Forked 31875 +(31875) found +[6650] Forked 31876 +(31876) found +[6649] Forked 31877 +(31877) found +[6648] Forked 31878 +(31878) found +[6647] Forked 31879 +(31879) found +[6646] Forked 31880 +(31880) found +[6645] Forked 31881 +(31881) found +[6644] Forked 31882 +(31882) found +[6643] Forked 31883 +(31883) found +[6642] Forked 31884 +(31884) found +[6641] Forked 31885 +(31885) found +[6640] Forked 31886 +(31886) found +[6639] Forked 31887 +(31887) found +[6638] Forked 31888 +(31888) found +[6637] Forked 31889 +(31889) found +[6636] Forked 31890 +(31890) found +[6635] Forked 31891 +(31891) found +[6634] Forked 31892 +(31892) found +[6633] Forked 31893 +(31893) found +[6632] Forked 31894 +(31894) found +[6631] Forked 31895 +(31895) found +[6630] Forked 31896 +(31896) found +[6629] Forked 31897 +(31897) found +[6628] Forked 31898 +(31898) found +[6627] Forked 31899 +(31899) found +[6626] Forked 31900 +(31900) found +[6625] Forked 31901 +(31901) found +[6624] Forked 31902 +(31902) found +[6623] Forked 31903 +(31903) found +[6622] Forked 31904 +[6621] Forked 31905 +(31904) found +(31905) found +[6620] Forked 31906 +[6619] Forked 31907 +(31906) found +(31907) found +[6618] Forked 31908 +[6617] Forked 31909 +(31908) found +(31909) found +[6616] Forked 31910 +[6615] Forked 31911 +(31910) found +(31911) found +[6614] Forked 31912 +[6613] Forked 31913 +(31912) found +(31913) found +[6612] Forked 31914 +[6611] Forked 31915 +(31914) found +(31915) found +[6610] Forked 31916 +[6609] Forked 31917 +(31916) found +(31917) found +[6608] Forked 31918 +[6607] Forked 31919 +(31918) found +(31919) found +[6606] Forked 31920 +[6605] Forked 31921 +(31920) found +(31921) found +[6604] Forked 31922 +[6603] Forked 31923 +(31922) found +(31923) found +[6602] Forked 31924 +[6601] Forked 31925 +(31924) found +(31925) found +[6600] Forked 31926 +[6599] Forked 31927 +(31926) found +(31927) found +[6598] Forked 31928 +[6597] Forked 31929 +(31928) found +(31929) found +[6596] Forked 31930 +[6595] Forked 31931 +(31930) found +(31931) found +[6594] Forked 31932 +[6593] Forked 31933 +(31932) found +(31933) found +[6592] Forked 31934 +[6591] Forked 31935 +(31934) found +(31935) found +[6590] Forked 31936 +[6589] Forked 31937 +(31936) found +(31937) found +[6588] Forked 31938 +[6587] Forked 31939 +(31938) found +(31939) found +[6586] Forked 31940 +[6585] Forked 31941 +(31940) found +(31941) found +[6584] Forked 31942 +[6583] Forked 31943 +(31942) found +(31943) found +[6582] Forked 31944 +[6581] Forked 31945 +(31944) found +(31945) found +[6580] Forked 31946 +[6579] Forked 31947 +(31946) found +(31947) found +[6578] Forked 31948 +[6577] Forked 31949 +(31948) found +(31949) found +[6576] Forked 31950 +(31950) found +[6575] Forked 31951 +(31951) found +[6574] Forked 31952 +(31952) found +[6573] Forked 31953 +(31953) found +[6572] Forked 31954 +(31954) found +[6571] Forked 31955 +(31955) found +[6570] Forked 31956 +(31956) found +[6569] Forked 31957 +(31957) found +[6568] Forked 31958 +(31958) found +[6567] Forked 31959 +(31959) found +[6566] Forked 31960 +(31960) found +[6565] Forked 31961 +(31961) found +[6564] Forked 31962 +(31962) found +[6563] Forked 31963 +(31963) found +[6562] Forked 31964 +(31964) found +[6561] Forked 31965 +(31965) found +[6560] Forked 31966 +(31966) found +[6559] Forked 31967 +(31967) found +[6558] Forked 31968 +(31968) found +[6557] Forked 31969 +(31969) found +[6556] Forked 31970 +(31970) found +[6555] Forked 31971 +(31971) found +[6554] Forked 31972 +(31972) found +[6553] Forked 31973 +(31973) found +[6552] Forked 31974 +(31974) found +[6551] Forked 31975 +(31975) found +[6550] Forked 31976 +(31976) found +[6549] Forked 31977 +(31977) found +[6548] Forked 31978 +(31978) found +[6547] Forked 31979 +(31979) found +[6546] Forked 31980 +(31980) found +[6545] Forked 31981 +(31981) found +[6544] Forked 31982 +(31982) found +[6543] Forked 31983 +(31983) found +[6542] Forked 31984 +(31984) found +[6541] Forked 31985 +[6540] Forked 31986 +(31985) found +(31986) found +[6539] Forked 31987 +[6538] Forked 31988 +(31987) found +(31988) found +[6537] Forked 31989 +[6536] Forked 31990 +(31989) found +(31990) found +[6535] Forked 31991 +[6534] Forked 31992 +(31991) found +(31992) found +[6533] Forked 31993 +[6532] Forked 31994 +(31993) found +(31994) found +[6531] Forked 31995 +[6530] Forked 31996 +(31995) found +(31996) found +[6529] Forked 31997 +[6528] Forked 31998 +(31997) found +(31998) found +[6527] Forked 31999 +[6526] Forked 32000 +(31999) found +(32000) found +[6525] Forked 32001 +[6524] Forked 32002 +(32001) found +(32002) found +[6523] Forked 32003 +[6522] Forked 32004 +(32003) found +(32004) found +[6521] Forked 32005 +[6520] Forked 32006 +(32005) found +(32006) found +[6519] Forked 32007 +[6518] Forked 32008 +(32007) found +(32008) found +[6517] Forked 32009 +[6516] Forked 32010 +(32009) found +(32010) found +[6515] Forked 32011 +[6514] Forked 32012 +(32011) found +(32012) found +[6513] Forked 32013 +[6512] Forked 32014 +(32013) found +(32014) found +[6511] Forked 32015 +[6510] Forked 32016 +(32015) found +(32016) found +[6509] Forked 32017 +[6508] Forked 32018 +(32017) found +(32018) found +[6507] Forked 32019 +[6506] Forked 32020 +(32019) found +(32020) found +[6505] Forked 32021 +[6504] Forked 32022 +(32021) found +(32022) found +[6503] Forked 32023 +[6502] Forked 32024 +(32023) found +(32024) found +[6501] Forked 32025 +[6500] Forked 32026 +(32025) found +(32026) found +[6499] Forked 32027 +[6498] Forked 32028 +(32027) found +(32028) found +[6497] Forked 32029 +[6496] Forked 32030 +(32029) found +(32030) found +[6495] Forked 32031 +[6494] Forked 32032 +(32031) found +(32032) found +[6493] Forked 32033 +[6492] Forked 32034 +(32033) found +(32034) found +[6491] Forked 32035 +[6490] Forked 32036 +(32035) found +(32036) found +[6489] Forked 32037 +[6488] Forked 32038 +(32037) found +(32038) found +[6487] Forked 32039 +[6486] Forked 32040 +(32039) found +(32040) found +[6485] Forked 32041 +[6484] Forked 32042 +(32041) found +(32042) found +[6483] Forked 32043 +[6482] Forked 32044 +(32043) found +(32044) found +[6481] Forked 32045 +[6480] Forked 32046 +(32045) found +(32046) found +[6479] Forked 32047 +[6478] Forked 32048 +(32047) found +(32048) found +[6477] Forked 32049 +[6476] Forked 32050 +(32049) found +(32050) found +[6475] Forked 32051 +[6474] Forked 32052 +(32051) found +(32052) found +[6473] Forked 32053 +[6472] Forked 32054 +(32053) found +(32054) found +[6471] Forked 32055 +[6470] Forked 32056 +(32055) found +(32056) found +[6469] Forked 32057 +[6468] Forked 32058 +(32057) found +(32058) found +[6467] Forked 32059 +[6466] Forked 32060 +(32059) found +(32060) found +[6465] Forked 32061 +[6464] Forked 32062 +(32061) found +(32062) found +[6463] Forked 32063 +[6462] Forked 32064 +(32063) found +(32064) found +[6461] Forked 32065 +[6460] Forked 32066 +(32065) found +(32066) found +[6459] Forked 32067 +[6458] Forked 32068 +(32067) found +(32068) found +[6457] Forked 32069 +[6456] Forked 32070 +(32069) found +(32070) found +[6455] Forked 32071 +[6454] Forked 32072 +(32071) found +(32072) found +[6453] Forked 32073 +[6452] Forked 32074 +(32073) found +(32074) found +[6451] Forked 32075 +[6450] Forked 32076 +(32075) found +(32076) found +[6449] Forked 32077 +[6448] Forked 32078 +(32077) found +(32078) found +[6447] Forked 32079 +[6446] Forked 32080 +(32079) found +(32080) found +[6445] Forked 32081 +[6444] Forked 32082 +(32081) found +(32082) found +[6443] Forked 32083 +[6442] Forked 32084 +(32083) found +(32084) found +[6441] Forked 32085 +[6440] Forked 32086 +(32085) found +(32086) found +[6439] Forked 32087 +[6438] Forked 32088 +(32087) found +(32088) found +[6437] Forked 32089 +[6436] Forked 32090 +(32089) found +(32090) found +[6435] Forked 32091 +[6434] Forked 32092 +(32091) found +(32092) found +[6433] Forked 32093 +[6432] Forked 32094 +(32093) found +(32094) found +[6431] Forked 32095 +[6430] Forked 32096 +(32095) found +(32096) found +[6429] Forked 32097 +[6428] Forked 32098 +(32097) found +(32098) found +[6427] Forked 32099 +[6426] Forked 32100 +(32099) found +(32100) found +[6425] Forked 32101 +[6424] Forked 32102 +(32101) found +(32102) found +[6423] Forked 32103 +[6422] Forked 32104 +(32103) found +(32104) found +[6421] Forked 32105 +[6420] Forked 32106 +(32105) found +(32106) found +[6419] Forked 32107 +[6418] Forked 32108 +(32107) found +(32108) found +[6417] Forked 32109 +[6416] Forked 32110 +(32109) found +(32110) found +[6415] Forked 32111 +[6414] Forked 32112 +(32111) found +(32112) found +[6413] Forked 32113 +[6412] Forked 32115 +(32113) found +(32115) found +[6411] Forked 32116 +(32116) found +[6410] Forked 32117 +[6409] Forked 32118 +(32117) found +(32118) found +[6408] Forked 32119 +[6407] Forked 32120 +(32119) found +(32120) found +[6406] Forked 32121 +[6405] Forked 32122 +(32121) found +(32122) found +[6404] Forked 32123 +[6403] Forked 32124 +(32123) found +(32124) found +[6402] Forked 32125 +[6401] Forked 32126 +(32125) found +(32126) found +[6400] Forked 32127 +[6399] Forked 32128 +(32127) found +(32128) found +[6398] Forked 32129 +[6397] Forked 32130 +(32129) found +(32130) found +[6396] Forked 32131 +[6395] Forked 32132 +(32131) found +(32132) found +[6394] Forked 32133 +[6393] Forked 32134 +(32133) found +(32134) found +[6392] Forked 32135 +[6391] Forked 32136 +(32135) found +(32136) found +[6390] Forked 32137 +[6389] Forked 32138 +(32137) found +(32138) found +[6388] Forked 32139 +[6387] Forked 32140 +(32139) found +(32140) found +[6386] Forked 32141 +[6385] Forked 32142 +(32141) found +(32142) found +[6384] Forked 32143 +[6383] Forked 32144 +(32143) found +(32144) found +[6382] Forked 32145 +[6381] Forked 32146 +(32145) found +(32146) found +[6380] Forked 32147 +[6379] Forked 32148 +(32147) found +(32148) found +[6378] Forked 32149 +[6377] Forked 32150 +(32149) found +(32150) found +[6376] Forked 32151 +[6375] Forked 32152 +(32151) found +(32152) found +[6374] Forked 32153 +[6373] Forked 32154 +(32153) found +(32154) found +[6372] Forked 32155 +[6371] Forked 32156 +(32155) found +(32156) found +[6370] Forked 32157 +[6369] Forked 32158 +(32157) found +(32158) found +[6368] Forked 32159 +[6367] Forked 32160 +(32159) found +(32160) found +[6366] Forked 32161 +[6365] Forked 32162 +(32161) found +(32162) found +[6364] Forked 32163 +[6363] Forked 32164 +(32163) found +(32164) found +[6362] Forked 32165 +[6361] Forked 32166 +(32165) found +(32166) found +[6360] Forked 32167 +[6359] Forked 32168 +(32167) found +(32168) found +[6358] Forked 32169 +(32169) found +[6357] Forked 32170 +(32170) found +[6356] Forked 32171 +(32171) found +[6355] Forked 32172 +(32172) found +[6354] Forked 32173 +(32173) found +[6353] Forked 32174 +(32174) found +[6352] Forked 32175 +(32175) found +[6351] Forked 32176 +(32176) found +[6350] Forked 32177 +(32177) found +[6349] Forked 32178 +(32178) found +[6348] Forked 32179 +(32179) found +[6347] Forked 32180 +(32180) found +[6346] Forked 32181 +(32181) found +[6345] Forked 32182 +(32182) found +[6344] Forked 32183 +(32183) found +[6343] Forked 32184 +(32184) found +[6342] Forked 32185 +(32185) found +[6341] Forked 32186 +(32186) found +[6340] Forked 32187 +(32187) found +[6339] Forked 32188 +(32188) found +[6338] Forked 32189 +(32189) found +[6337] Forked 32190 +(32190) found +[6336] Forked 32191 +(32191) found +[6335] Forked 32192 +(32192) found +[6334] Forked 32193 +(32193) found +[6333] Forked 32194 +(32194) found +[6332] Forked 32195 +(32195) found +[6331] Forked 32196 +(32196) found +[6330] Forked 32197 +(32197) found +[6329] Forked 32198 +(32198) found +[6328] Forked 32199 +(32199) found +[6327] Forked 32200 +(32200) found +[6326] Forked 32201 +(32201) found +[6325] Forked 32202 +(32202) found +[6324] Forked 32203 +(32203) found +[6323] Forked 32204 +[6322] Forked 32205 +(32204) found +(32205) found +[6321] Forked 32206 +[6320] Forked 32207 +(32206) found +(32207) found +[6319] Forked 32208 +[6318] Forked 32209 +(32208) found +(32209) found +[6317] Forked 32210 +[6316] Forked 32211 +(32210) found +(32211) found +[6315] Forked 32212 +[6314] Forked 32213 +(32212) found +(32213) found +[6313] Forked 32214 +[6312] Forked 32215 +(32214) found +(32215) found +[6311] Forked 32216 +[6310] Forked 32217 +(32216) found +(32217) found +[6309] Forked 32218 +[6308] Forked 32219 +(32218) found +(32219) found +[6307] Forked 32220 +[6306] Forked 32221 +(32220) found +(32221) found +[6305] Forked 32222 +[6304] Forked 32223 +(32222) found +(32223) found +[6303] Forked 32224 +[6302] Forked 32225 +(32224) found +(32225) found +[6301] Forked 32226 +[6300] Forked 32227 +(32226) found +(32227) found +[6299] Forked 32228 +[6298] Forked 32229 +(32228) found +(32229) found +[6297] Forked 32230 +[6296] Forked 32231 +(32230) found +(32231) found +[6295] Forked 32232 +[6294] Forked 32233 +(32232) found +(32233) found +[6293] Forked 32234 +[6292] Forked 32235 +(32234) found +(32235) found +[6291] Forked 32236 +[6290] Forked 32237 +(32236) found +(32237) found +[6289] Forked 32238 +[6288] Forked 32239 +(32238) found +(32239) found +[6287] Forked 32240 +[6286] Forked 32241 +(32240) found +(32241) found +[6285] Forked 32242 +[6284] Forked 32243 +(32242) found +(32243) found +[6283] Forked 32244 +[6282] Forked 32245 +(32244) found +(32245) found +[6281] Forked 32246 +[6280] Forked 32247 +(32246) found +(32247) found +[6279] Forked 32248 +[6278] Forked 32249 +(32248) found +(32249) found +[6277] Forked 32250 +(32250) found +[6276] Forked 32251 +(32251) found +[6275] Forked 32252 +(32252) found +[6274] Forked 32253 +(32253) found +[6273] Forked 32254 +(32254) found +[6272] Forked 32255 +(32255) found +[6271] Forked 32256 +(32256) found +[6270] Forked 32257 +(32257) found +[6269] Forked 32258 +(32258) found +[6268] Forked 32259 +(32259) found +[6267] Forked 32260 +(32260) found +[6266] Forked 32261 +(32261) found +[6265] Forked 32262 +(32262) found +[6264] Forked 32263 +(32263) found +[6263] Forked 32264 +(32264) found +[6262] Forked 32265 +(32265) found +[6261] Forked 32266 +(32266) found +[6260] Forked 32267 +(32267) found +[6259] Forked 32268 +(32268) found +[6258] Forked 32269 +(32269) found +[6257] Forked 32270 +(32270) found +[6256] Forked 32271 +(32271) found +[6255] Forked 32272 +(32272) found +[6254] Forked 32273 +(32273) found +[6253] Forked 32274 +(32274) found +[6252] Forked 32275 +[6251] Forked 32276 +(32275) found +(32276) found +[6250] Forked 32277 +[6249] Forked 32278 +(32277) found +(32278) found +[6248] Forked 32279 +[6247] Forked 32280 +(32279) found +(32280) found +[6246] Forked 32281 +[6245] Forked 32282 +(32281) found +(32282) found +[6244] Forked 32283 +[6243] Forked 32284 +(32283) found +(32284) found +[6242] Forked 32285 +[6241] Forked 32286 +(32285) found +(32286) found +[6240] Forked 32287 +[6239] Forked 32288 +(32287) found +(32288) found +[6238] Forked 32289 +[6237] Forked 32290 +(32289) found +(32290) found +[6236] Forked 32291 +[6235] Forked 32292 +(32291) found +(32292) found +[6234] Forked 32293 +[6233] Forked 32294 +(32293) found +(32294) found +[6232] Forked 32295 +[6231] Forked 32296 +(32295) found +(32296) found +[6230] Forked 32297 +[6229] Forked 32298 +(32297) found +(32298) found +[6228] Forked 32299 +[6227] Forked 32300 +(32299) found +(32300) found +[6226] Forked 32301 +[6225] Forked 32302 +(32301) found +(32302) found +[6224] Forked 32303 +[6223] Forked 32304 +(32303) found +(32304) found +[6222] Forked 32305 +[6221] Forked 32306 +(32305) found +(32306) found +[6220] Forked 32307 +[6219] Forked 32308 +(32307) found +(32308) found +[6218] Forked 32309 +[6217] Forked 32310 +(32309) found +(32310) found +[6216] Forked 32311 +[6215] Forked 32312 +(32311) found +(32312) found +[6214] Forked 32313 +[6213] Forked 32314 +(32313) found +(32314) found +[6212] Forked 32315 +[6211] Forked 32316 +(32315) found +(32316) found +[6210] Forked 32317 +[6209] Forked 32318 +(32317) found +(32318) found +[6208] Forked 32319 +[6207] Forked 32320 +(32319) found +(32320) found +[6206] Forked 32321 +(32321) found +[6205] Forked 32322 +(32322) found +[6204] Forked 32323 +(32323) found +[6203] Forked 32324 +(32324) found +[6202] Forked 32325 +(32325) found +[6201] Forked 32326 +(32326) found +[6200] Forked 32327 +(32327) found +[6199] Forked 32328 +(32328) found +[6198] Forked 32329 +(32329) found +[6197] Forked 32330 +(32330) found +[6196] Forked 32331 +(32331) found +[6195] Forked 32332 +(32332) found +[6194] Forked 32333 +(32333) found +[6193] Forked 32334 +(32334) found +[6192] Forked 32335 +(32335) found +[6191] Forked 32336 +(32336) found +[6190] Forked 32337 +(32337) found +[6189] Forked 32338 +(32338) found +[6188] Forked 32339 +(32339) found +[6187] Forked 32340 +(32340) found +[6186] Forked 32341 +(32341) found +[6185] Forked 32342 +(32342) found +[6184] Forked 32343 +(32343) found +[6183] Forked 32344 +(32344) found +[6182] Forked 32345 +(32345) found +[6181] Forked 32346 +(32346) found +[6180] Forked 32347 +(32347) found +[6179] Forked 32348 +(32348) found +[6178] Forked 32349 +(32349) found +[6177] Forked 32350 +(32350) found +[6176] Forked 32351 +(32351) found +[6175] Forked 32352 +(32352) found +[6174] Forked 32353 +(32353) found +[6173] Forked 32354 +(32354) found +[6172] Forked 32355 +(32355) found +[6171] Forked 32356 +[6170] Forked 32357 +(32356) found +(32357) found +[6169] Forked 32358 +[6168] Forked 32359 +(32358) found +(32359) found +[6167] Forked 32360 +[6166] Forked 32361 +(32360) found +(32361) found +[6165] Forked 32362 +[6164] Forked 32363 +(32362) found +(32363) found +[6163] Forked 32364 +[6162] Forked 32365 +(32364) found +(32365) found +[6161] Forked 32366 +[6160] Forked 32367 +(32366) found +(32367) found +[6159] Forked 32368 +[6158] Forked 32369 +(32368) found +(32369) found +[6157] Forked 32370 +[6156] Forked 32371 +(32370) found +(32371) found +[6155] Forked 32372 +[6154] Forked 32373 +(32372) found +(32373) found +[6153] Forked 32374 +[6152] Forked 32375 +(32374) found +(32375) found +[6151] Forked 32376 +[6150] Forked 32377 +(32376) found +(32377) found +[6149] Forked 32378 +[6148] Forked 32379 +(32378) found +(32379) found +[6147] Forked 32380 +[6146] Forked 32381 +(32380) found +(32381) found +[6145] Forked 32382 +[6144] Forked 32383 +(32382) found +(32383) found +[6143] Forked 32384 +[6142] Forked 32385 +(32384) found +(32385) found +[6141] Forked 32386 +[6140] Forked 32387 +(32386) found +(32387) found +[6139] Forked 32388 +[6138] Forked 32389 +(32388) found +(32389) found +[6137] Forked 32390 +[6136] Forked 32391 +(32390) found +(32391) found +[6135] Forked 32392 +[6134] Forked 32393 +(32392) found +(32393) found +[6133] Forked 32394 +[6132] Forked 32396 +(32394) found +(32396) found +[6131] Forked 32397 +(32397) found +[6130] Forked 32398 +(32398) found +[6129] Forked 32399 +(32399) found +[6128] Forked 32400 +(32400) found +[6127] Forked 32401 +(32401) found +[6126] Forked 32402 +(32402) found +[6125] Forked 32403 +(32403) found +[6124] Forked 32404 +(32404) found +[6123] Forked 32405 +(32405) found +[6122] Forked 32406 +(32406) found +[6121] Forked 32407 +(32407) found +[6120] Forked 32408 +(32408) found +[6119] Forked 32409 +(32409) found +[6118] Forked 32410 +(32410) found +[6117] Forked 32411 +(32411) found +[6116] Forked 32412 +(32412) found +[6115] Forked 32413 +(32413) found +[6114] Forked 32414 +(32414) found +[6113] Forked 32415 +(32415) found +[6112] Forked 32416 +(32416) found +[6111] Forked 32417 +(32417) found +[6110] Forked 32418 +(32418) found +[6109] Forked 32419 +(32419) found +[6108] Forked 32420 +(32420) found +[6107] Forked 32421 +(32421) found +[6106] Forked 32422 +(32422) found +[6105] Forked 32423 +(32423) found +[6104] Forked 32424 +(32424) found +[6103] Forked 32425 +(32425) found +[6102] Forked 32426 +(32426) found +[6101] Forked 32427 +(32427) found +[6100] Forked 32428 +(32428) found +[6099] Forked 32429 +(32429) found +[6098] Forked 32430 +(32430) found +[6097] Forked 32431 +(32431) found +[6096] Forked 32432 +(32432) found +[6095] Forked 32433 +(32433) found +[6094] Forked 32434 +(32434) found +[6093] Forked 32435 +(32435) found +[6092] Forked 32436 +[6091] Forked 32437 +(32436) found +(32437) found +[6090] Forked 32438 +[6089] Forked 32439 +(32438) found +(32439) found +[6088] Forked 32440 +[6087] Forked 32441 +(32440) found +(32441) found +[6086] Forked 32442 +[6085] Forked 32443 +(32442) found +(32443) found +[6084] Forked 32444 +[6083] Forked 32445 +(32444) found +(32445) found +[6082] Forked 32446 +[6081] Forked 32447 +(32446) found +(32447) found +[6080] Forked 32448 +[6079] Forked 32449 +(32448) found +(32449) found +[6078] Forked 32450 +[6077] Forked 32452 +(32450) found +(32452) found +[6076] Forked 32453 +(32453) found +[6075] Forked 32454 +(32454) found +[6074] Forked 32455 +(32455) found +[6073] Forked 32456 +(32456) found +[6072] Forked 32457 +(32457) found +[6071] Forked 32458 +(32458) found +[6070] Forked 32459 +(32459) found +[6069] Forked 32460 +(32460) found +[6068] Forked 32461 +(32461) found +[6067] Forked 32462 +(32462) found +[6066] Forked 32463 +(32463) found +[6065] Forked 32464 +(32464) found +[6064] Forked 32465 +(32465) found +[6063] Forked 32466 +(32466) found +[6062] Forked 32467 +(32467) found +[6061] Forked 32468 +(32468) found +[6060] Forked 32469 +(32469) found +[6059] Forked 32470 +(32470) found +[6058] Forked 32471 +(32471) found +[6057] Forked 32472 +(32472) found +[6056] Forked 32473 +(32473) found +[6055] Forked 32474 +(32474) found +[6054] Forked 32475 +(32475) found +[6053] Forked 32476 +(32476) found +[6052] Forked 32477 +(32477) found +[6051] Forked 32478 +(32478) found +[6050] Forked 32479 +(32479) found +[6049] Forked 32480 +(32480) found +[6048] Forked 32481 +(32481) found +[6047] Forked 32482 +(32482) found +[6046] Forked 32483 +(32483) found +[6045] Forked 32484 +(32484) found +[6044] Forked 32485 +(32485) found +[6043] Forked 32486 +(32486) found +[6042] Forked 32487 +(32487) found +[6041] Forked 32488 +(32488) found +[6040] Forked 32489 +(32489) found +[6039] Forked 32490 +(32490) found +[6038] Forked 32491 +(32491) found +[6037] Forked 32492 +(32492) found +[6036] Forked 32493 +(32493) found +[6035] Forked 32494 +(32494) found +[6034] Forked 32495 +(32495) found +[6033] Forked 32496 +(32496) found +[6032] Forked 32497 +(32497) found +[6031] Forked 32498 +(32498) found +[6030] Forked 32499 +(32499) found +[6029] Forked 32500 +(32500) found +[6028] Forked 32501 +(32501) found +[6027] Forked 32502 +(32502) found +[6026] Forked 32503 +(32503) found +[6025] Forked 32504 +(32504) found +[6024] Forked 32505 +(32505) found +[6023] Forked 32506 +(32506) found +[6022] Forked 32507 +(32507) found +[6021] Forked 32508 +(32508) found +[6020] Forked 32509 +(32509) found +[6019] Forked 32510 +(32510) found +[6018] Forked 32511 +[6017] Forked 32512 +(32511) found +(32512) found +[6016] Forked 32513 +[6015] Forked 32514 +(32513) found +(32514) found +[6014] Forked 32515 +[6013] Forked 32516 +(32515) found +(32516) found +[6012] Forked 32517 +[6011] Forked 32518 +(32517) found +(32518) found +[6010] Forked 32519 +[6009] Forked 32520 +(32519) found +(32520) found +[6008] Forked 32521 +[6007] Forked 32522 +(32521) found +(32522) found +[6006] Forked 32523 +[6005] Forked 32524 +(32523) found +(32524) found +[6004] Forked 32525 +[6003] Forked 32526 +(32525) found +(32526) found +[6002] Forked 32527 +[6001] Forked 32528 +(32527) found +(32528) found +[6000] Forked 32529 +[5999] Forked 32530 +(32529) found +(32530) found +[5998] Forked 32531 +[5997] Forked 32532 +(32531) found +(32532) found +[5996] Forked 32533 +[5995] Forked 32534 +(32533) found +(32534) found +[5994] Forked 32535 +[5993] Forked 32536 +(32535) found +(32536) found +[5992] Forked 32537 +[5991] Forked 32538 +(32537) found +(32538) found +[5990] Forked 32539 +[5989] Forked 32540 +(32539) found +(32540) found +[5988] Forked 32541 +[5987] Forked 32542 +(32541) found +(32542) found +[5986] Forked 32543 +[5985] Forked 32544 +(32543) found +(32544) found +[5984] Forked 32545 +[5983] Forked 32546 +(32545) found +(32546) found +[5982] Forked 32547 +[5981] Forked 32548 +(32547) found +(32548) found +[5980] Forked 32549 +[5979] Forked 32550 +(32549) found +(32550) found +[5978] Forked 32551 +[5977] Forked 32552 +(32551) found +(32552) found +[5976] Forked 32553 +[5975] Forked 32554 +(32553) found +(32554) found +[5974] Forked 32555 +[5973] Forked 32556 +(32555) found +(32556) found +[5972] Forked 32557 +[5971] Forked 32558 +(32557) found +(32558) found +[5970] Forked 32559 +[5969] Forked 32560 +(32559) found +(32560) found +[5968] Forked 32561 +[5967] Forked 32562 +(32561) found +(32562) found +[5966] Forked 32563 +[5965] Forked 32564 +(32563) found +(32564) found +[5964] Forked 32565 +[5963] Forked 32566 +(32565) found +(32566) found +[5962] Forked 32567 +[5961] Forked 32568 +(32567) found +(32568) found +[5960] Forked 32569 +[5959] Forked 32570 +(32569) found +(32570) found +[5958] Forked 32571 +[5957] Forked 32572 +(32571) found +(32572) found +[5956] Forked 32573 +[5955] Forked 32574 +(32573) found +(32574) found +[5954] Forked 32575 +[5953] Forked 32576 +(32575) found +(32576) found +[5952] Forked 32577 +[5951] Forked 32578 +(32577) found +(32578) found +[5950] Forked 32579 +[5949] Forked 32580 +(32579) found +(32580) found +[5948] Forked 32581 +[5947] Forked 32582 +(32581) found +(32582) found +[5946] Forked 32583 +[5945] Forked 32584 +(32583) found +(32584) found +[5944] Forked 32585 +[5943] Forked 32586 +(32585) found +(32586) found +[5942] Forked 32587 +[5941] Forked 32588 +(32587) found +(32588) found +[5940] Forked 32589 +[5939] Forked 32590 +(32589) found +(32590) found +[5938] Forked 32591 +[5937] Forked 32592 +(32591) found +(32592) found +[5936] Forked 32593 +[5935] Forked 32594 +(32593) found +(32594) found +[5934] Forked 32595 +[5933] Forked 32596 +(32595) found +(32596) found +[5932] Forked 32597 +[5931] Forked 32599 +(32597) found +(32599) found +[5930] Forked 32600 +(32600) found +[5929] Forked 32601 +(32601) found +[5928] Forked 32602 +(32602) found +[5927] Forked 32603 +(32603) found +[5926] Forked 32604 +(32604) found +[5925] Forked 32605 +(32605) found +[5924] Forked 32606 +(32606) found +[5923] Forked 32607 +(32607) found +[5922] Forked 32608 +(32608) found +[5921] Forked 32609 +(32609) found +[5920] Forked 32610 +(32610) found +[5919] Forked 32611 +(32611) found +[5918] Forked 32612 +(32612) found +[5917] Forked 32613 +(32613) found +[5916] Forked 32614 +(32614) found +[5915] Forked 32615 +(32615) found +[5914] Forked 32616 +(32616) found +[5913] Forked 32617 +(32617) found +[5912] Forked 32618 +(32618) found +[5911] Forked 32619 +(32619) found +[5910] Forked 32620 +(32620) found +[5909] Forked 32621 +(32621) found +[5908] Forked 32622 +(32622) found +[5907] Forked 32623 +(32623) found +[5906] Forked 32624 +(32624) found +[5905] Forked 32625 +(32625) found +[5904] Forked 32626 +(32626) found +[5903] Forked 32627 +(32627) found +[5902] Forked 32628 +(32628) found +[5901] Forked 32629 +(32629) found +[5900] Forked 32630 +(32630) found +[5899] Forked 32631 +(32631) found +[5898] Forked 32632 +(32632) found +[5897] Forked 32633 +(32633) found +[5896] Forked 32634 +(32634) found +[5895] Forked 32635 +(32635) found +[5894] Forked 32636 +(32636) found +[5893] Forked 32637 +(32637) found +[5892] Forked 32638 +(32638) found +[5891] Forked 32639 +[5890] Forked 32640 +(32639) found +(32640) found +[5889] Forked 32641 +[5888] Forked 32642 +(32641) found +(32642) found +[5887] Forked 32643 +[5886] Forked 32644 +(32643) found +(32644) found +[5885] Forked 32645 +[5884] Forked 32646 +(32645) found +(32646) found +[5883] Forked 32647 +[5882] Forked 32648 +(32647) found +(32648) found +[5881] Forked 32649 +[5880] Forked 32650 +(32649) found +(32650) found +[5879] Forked 32651 +[5878] Forked 32652 +(32651) found +(32652) found +[5877] Forked 32653 +[5876] Forked 32654 +(32653) found +(32654) found +[5875] Forked 32655 +[5874] Forked 32656 +(32655) found +(32656) found +[5873] Forked 32657 +[5872] Forked 32658 +(32657) found +(32658) found +[5871] Forked 32659 +[5870] Forked 32660 +(32659) found +(32660) found +[5869] Forked 32661 +[5868] Forked 32662 +(32661) found +(32662) found +[5867] Forked 32663 +[5866] Forked 32664 +(32663) found +(32664) found +[5865] Forked 32665 +[5864] Forked 32666 +(32665) found +(32666) found +[5863] Forked 32667 +[5862] Forked 32668 +(32667) found +(32668) found +[5861] Forked 32669 +[5860] Forked 32670 +(32669) found +(32670) found +[5859] Forked 32671 +[5858] Forked 32672 +(32671) found +(32672) found +[5857] Forked 32673 +[5856] Forked 32674 +(32673) found +(32674) found +[5855] Forked 32675 +[5854] Forked 32676 +(32675) found +(32676) found +[5853] Forked 32677 +[5852] Forked 32678 +(32677) found +(32678) found +[5851] Forked 32679 +[5850] Forked 32680 +(32679) found +(32680) found +[5849] Forked 32681 +[5848] Forked 32682 +(32681) found +(32682) found +[5847] Forked 32683 +(32683) found +[5846] Forked 32684 +(32684) found +[5845] Forked 32685 +(32685) found +[5844] Forked 32686 +(32686) found +[5843] Forked 32687 +(32687) found +[5842] Forked 32688 +(32688) found +[5841] Forked 32689 +(32689) found +[5840] Forked 32690 +(32690) found +[5839] Forked 32691 +(32691) found +[5838] Forked 32692 +(32692) found +[5837] Forked 32693 +(32693) found +[5836] Forked 32694 +(32694) found +[5835] Forked 32695 +(32695) found +[5834] Forked 32696 +(32696) found +[5833] Forked 32697 +(32697) found +[5832] Forked 32698 +(32698) found +[5831] Forked 32699 +(32699) found +[5830] Forked 32700 +(32700) found +[5829] Forked 32701 +(32701) found +[5828] Forked 32702 +(32702) found +[5827] Forked 32703 +(32703) found +[5826] Forked 32704 +(32704) found +[5825] Forked 32705 +(32705) found +[5824] Forked 32706 +(32706) found +[5823] Forked 32707 +(32707) found +[5822] Forked 32708 +(32708) found +[5821] Forked 32709 +(32709) found +[5820] Forked 32710 +(32710) found +[5819] Forked 32711 +(32711) found +[5818] Forked 32712 +(32712) found +[5817] Forked 32713 +(32713) found +[5816] Forked 32714 +(32714) found +[5815] Forked 32715 +(32715) found +[5814] Forked 32716 +(32716) found +[5813] Forked 32717 +(32717) found +[5812] Forked 32718 +(32718) found +[5811] Forked 32719 +[5810] Forked 32720 +(32719) found +(32720) found +[5809] Forked 32721 +[5808] Forked 32722 +(32721) found +(32722) found +[5807] Forked 32723 +[5806] Forked 32724 +(32723) found +(32724) found +[5805] Forked 32725 +[5804] Forked 32726 +(32725) found +(32726) found +[5803] Forked 32727 +[5802] Forked 32728 +(32727) found +(32728) found +[5801] Forked 32729 +[5800] Forked 32730 +(32729) found +(32730) found +[5799] Forked 32731 +[5798] Forked 32732 +(32731) found +(32732) found +[5797] Forked 32733 +[5796] Forked 32734 +(32733) found +(32734) found +[5795] Forked 32735 +[5794] Forked 32736 +(32735) found +(32736) found +[5793] Forked 32737 +[5792] Forked 32738 +(32737) found +(32738) found +[5791] Forked 32739 +[5790] Forked 32740 +(32739) found +(32740) found +[5789] Forked 32741 +[5788] Forked 32742 +(32741) found +(32742) found +[5787] Forked 32743 +[5786] Forked 32744 +(32743) found +(32744) found +[5785] Forked 32745 +[5784] Forked 32746 +(32745) found +(32746) found +[5783] Forked 32747 +[5782] Forked 32748 +(32747) found +(32748) found +[5781] Forked 32749 +[5780] Forked 32750 +(32749) found +(32750) found +[5779] Forked 32751 +[5778] Forked 32752 +(32751) found +(32752) found +[5777] Forked 32753 +[5776] Forked 32754 +(32753) found +(32754) found +[5775] Forked 32755 +[5774] Forked 32756 +(32755) found +(32756) found +[5773] Forked 32757 +[5772] Forked 32758 +(32757) found +(32758) found +[5771] Forked 32759 +[5770] Forked 32760 +(32759) found +(32760) found +[5769] Forked 32761 +(32761) found +[5768] Forked 32762 +(32762) found +[5767] Forked 32763 +(32763) found +[5766] Forked 32764 +(32764) found +[5765] Forked 32765 +(32765) found +[5764] Forked 32766 +(32766) found +[5763] Forked 32767 +(32767) found +[5762] Forked 300 +(300) found +[5761] Forked 301 +(301) found +[5760] Forked 302 +(302) found +[5759] Forked 303 +(303) found +[5758] Forked 304 +(304) found +[5757] Forked 305 +(305) found +[5756] Forked 306 +(306) found +[5755] Forked 307 +(307) found +[5754] Forked 308 +(308) found +[5753] Forked 309 +(309) found +[5752] Forked 310 +(310) found +[5751] Forked 311 +(311) found +[5750] Forked 312 +(312) found +[5749] Forked 313 +(313) found +[5748] Forked 314 +(314) found +[5747] Forked 315 +(315) found +[5746] Forked 316 +(316) found +[5745] Forked 317 +(317) found +[5744] Forked 318 +(318) found +[5743] Forked 319 +(319) found +[5742] Forked 320 +(320) found +[5741] Forked 321 +(321) found +[5740] Forked 322 +(322) found +[5739] Forked 323 +(323) found +[5738] Forked 324 +(324) found +[5737] Forked 325 +(325) found +[5736] Forked 328 +(328) found +[5735] Forked 330 +(330) found +[5734] Forked 331 +[5733] Forked 332 +(331) found +(332) found +[5732] Forked 333 +[5731] Forked 334 +(333) found +(334) found +[5730] Forked 335 +[5729] Forked 336 +(335) found +(336) found +[5728] Forked 337 +[5727] Forked 338 +(337) found +(338) found +[5726] Forked 339 +[5725] Forked 340 +(339) found +(340) found +[5724] Forked 341 +[5723] Forked 342 +(341) found +(342) found +[5722] Forked 343 +[5721] Forked 344 +(343) found +(344) found +[5720] Forked 345 +[5719] Forked 346 +(345) found +(346) found +[5718] Forked 347 +[5717] Forked 348 +(347) found +(348) found +[5716] Forked 349 +[5715] Forked 350 +(349) found +(350) found +[5714] Forked 351 +[5713] Forked 352 +(351) found +(352) found +[5712] Forked 353 +[5711] Forked 354 +(353) found +(354) found +[5710] Forked 355 +[5709] Forked 356 +(355) found +(356) found +[5708] Forked 357 +[5707] Forked 358 +(357) found +(358) found +[5706] Forked 359 +[5705] Forked 360 +(359) found +(360) found +[5704] Forked 361 +[5703] Forked 362 +(361) found +(362) found +[5702] Forked 363 +[5701] Forked 364 +(363) found +(364) found +[5700] Forked 365 +[5699] Forked 366 +(365) found +(366) found +[5698] Forked 367 +[5697] Forked 368 +(367) found +(368) found +[5696] Forked 369 +[5695] Forked 370 +(369) found +(370) found +[5694] Forked 371 +[5693] Forked 372 +(371) found +(372) found +[5692] Forked 373 +[5691] Forked 374 +(373) found +(374) found +[5690] Forked 375 +(375) found +[5689] Forked 376 +(376) found +[5688] Forked 377 +(377) found +[5687] Forked 378 +(378) found +[5686] Forked 379 +(379) found +[5685] Forked 380 +(380) found +[5684] Forked 381 +(381) found +[5683] Forked 383 +(383) found +[5682] Forked 384 +(384) found +[5681] Forked 385 +(385) found +[5680] Forked 386 +(386) found +[5679] Forked 387 +(387) found +[5678] Forked 388 +(388) found +[5677] Forked 389 +(389) found +[5676] Forked 390 +(390) found +[5675] Forked 391 +(391) found +[5674] Forked 392 +(392) found +[5673] Forked 393 +(393) found +[5672] Forked 394 +(394) found +[5671] Forked 395 +(395) found +[5670] Forked 396 +(396) found +[5669] Forked 397 +(397) found +[5668] Forked 398 +(398) found +[5667] Forked 399 +(399) found +[5666] Forked 401 +(401) found +[5665] Forked 402 +(402) found +[5664] Forked 403 +(403) found +[5663] Forked 404 +(404) found +[5662] Forked 405 +(405) found +[5661] Forked 407 +(407) found +[5660] Forked 408 +(408) found +[5659] Forked 409 +(409) found +[5658] Forked 410 +(410) found +[5657] Forked 411 +(411) found +[5656] Forked 412 +(412) found +[5655] Forked 413 +[5654] Forked 414 +(413) found +(414) found +[5653] Forked 415 +[5652] Forked 416 +(415) found +(416) found +[5651] Forked 417 +[5650] Forked 418 +(417) found +(418) found +[5649] Forked 419 +[5648] Forked 420 +(419) found +(420) found +[5647] Forked 421 +[5646] Forked 422 +(421) found +(422) found +[5645] Forked 423 +[5644] Forked 424 +(423) found +(424) found +[5643] Forked 425 +[5642] Forked 426 +(425) found +(426) found +[5641] Forked 427 +[5640] Forked 429 +(427) found +(429) found +[5639] Forked 430 +[5638] Forked 431 +(430) found +(431) found +[5637] Forked 432 +[5636] Forked 433 +(432) found +(433) found +[5635] Forked 434 +[5634] Forked 435 +(434) found +(435) found +[5633] Forked 436 +[5632] Forked 437 +(436) found +(437) found +[5631] Forked 438 +[5630] Forked 439 +(438) found +(439) found +[5629] Forked 440 +[5628] Forked 441 +(440) found +(441) found +[5627] Forked 442 +[5626] Forked 443 +(442) found +(443) found +[5625] Forked 444 +[5624] Forked 445 +(444) found +(445) found +[5623] Forked 446 +[5622] Forked 447 +(446) found +(447) found +[5621] Forked 448 +[5620] Forked 449 +(448) found +(449) found +[5619] Forked 450 +[5618] Forked 451 +(450) found +(451) found +[5617] Forked 452 +[5616] Forked 453 +(452) found +(453) found +[5615] Forked 454 +[5614] Forked 455 +(454) found +(455) found +[5613] Forked 456 +[5612] Forked 457 +(456) found +(457) found +[5611] Forked 458 +[5610] Forked 459 +(458) found +(459) found +[5609] Forked 460 +[5608] Forked 461 +(460) found +(461) found +[5607] Forked 462 +[5606] Forked 463 +(462) found +(463) found +[5605] Forked 464 +[5604] Forked 465 +(464) found +(465) found +[5603] Forked 466 +[5602] Forked 467 +(466) found +(467) found +[5601] Forked 468 +[5600] Forked 469 +(468) found +(469) found +[5599] Forked 470 +[5598] Forked 471 +(470) found +(471) found +[5597] Forked 472 +[5596] Forked 473 +(472) found +(473) found +[5595] Forked 474 +[5594] Forked 475 +(474) found +(475) found +[5593] Forked 476 +[5592] Forked 477 +(476) found +(477) found +[5591] Forked 478 +[5590] Forked 479 +(478) found +(479) found +[5589] Forked 480 +[5588] Forked 481 +(480) found +(481) found +[5587] Forked 482 +[5586] Forked 483 +(482) found +(483) found +[5585] Forked 484 +[5584] Forked 485 +(484) found +(485) found +[5583] Forked 486 +[5582] Forked 487 +(486) found +(487) found +[5581] Forked 488 +[5580] Forked 489 +(488) found +(489) found +[5579] Forked 490 +[5578] Forked 491 +(490) found +(491) found +[5577] Forked 492 +[5576] Forked 493 +(492) found +(493) found +[5575] Forked 494 +[5574] Forked 495 +(494) found +(495) found +[5573] Forked 496 +[5572] Forked 497 +(496) found +(497) found +[5571] Forked 498 +[5570] Forked 499 +(498) found +(499) found +[5569] Forked 500 +[5568] Forked 501 +(500) found +(501) found +[5567] Forked 502 +[5566] Forked 503 +(502) found +(503) found +[5565] Forked 504 +[5564] Forked 505 +(504) found +(505) found +[5563] Forked 506 +(506) found +[5562] Forked 507 +(507) found +[5561] Forked 508 +(508) found +[5560] Forked 509 +(509) found +[5559] Forked 510 +(510) found +[5558] Forked 511 +(511) found +[5557] Forked 512 +(512) found +[5556] Forked 513 +(513) found +[5555] Forked 514 +(514) found +[5554] Forked 515 +(515) found +[5553] Forked 516 +(516) found +[5552] Forked 517 +(517) found +[5551] Forked 518 +(518) found +[5550] Forked 519 +(519) found +[5549] Forked 520 +(520) found +[5548] Forked 521 +(521) found +[5547] Forked 522 +(522) found +[5546] Forked 523 +(523) found +[5545] Forked 524 +(524) found +[5544] Forked 525 +(525) found +[5543] Forked 526 +(526) found +[5542] Forked 527 +(527) found +[5541] Forked 528 +(528) found +[5540] Forked 529 +(529) found +[5539] Forked 530 +(530) found +[5538] Forked 531 +(531) found +[5537] Forked 532 +(532) found +[5536] Forked 533 +(533) found +[5535] Forked 534 +(534) found +[5534] Forked 535 +(535) found +[5533] Forked 536 +(536) found +[5532] Forked 537 +(537) found +[5531] Forked 538 +(538) found +[5530] Forked 539 +(539) found +[5529] Forked 540 +[5528] Forked 541 +(540) found +(541) found +[5527] Forked 542 +[5526] Forked 543 +(542) found +(543) found +[5525] Forked 544 +[5524] Forked 545 +(544) found +(545) found +[5523] Forked 546 +[5522] Forked 547 +(546) found +(547) found +[5521] Forked 548 +[5520] Forked 549 +(548) found +(549) found +[5519] Forked 550 +[5518] Forked 551 +(550) found +(551) found +[5517] Forked 552 +[5516] Forked 553 +(552) found +(553) found +[5515] Forked 554 +[5514] Forked 555 +(554) found +(555) found +[5513] Forked 556 +[5512] Forked 557 +(556) found +(557) found +[5511] Forked 558 +[5510] Forked 559 +(558) found +(559) found +[5509] Forked 560 +[5508] Forked 561 +(560) found +(561) found +[5507] Forked 562 +[5506] Forked 563 +(562) found +(563) found +[5505] Forked 564 +[5504] Forked 565 +(564) found +(565) found +[5503] Forked 566 +[5502] Forked 567 +(566) found +(567) found +[5501] Forked 568 +[5500] Forked 569 +(568) found +(569) found +[5499] Forked 570 +[5498] Forked 571 +(570) found +(571) found +[5497] Forked 572 +[5496] Forked 573 +(572) found +(573) found +[5495] Forked 574 +[5494] Forked 575 +(574) found +(575) found +[5493] Forked 576 +[5492] Forked 577 +(576) found +(577) found +[5491] Forked 578 +[5490] Forked 579 +(578) found +(579) found +[5489] Forked 580 +[5488] Forked 581 +(580) found +(581) found +[5487] Forked 582 +[5486] Forked 583 +(582) found +(583) found +[5485] Forked 584 +[5484] Forked 585 +(584) found +(585) found +[5483] Forked 586 +[5482] Forked 587 +(586) found +(587) found +[5481] Forked 588 +[5480] Forked 589 +(588) found +(589) found +[5479] Forked 590 +[5478] Forked 591 +(590) found +(591) found +[5477] Forked 592 +[5476] Forked 593 +(592) found +(593) found +[5475] Forked 594 +[5474] Forked 595 +(594) found +(595) found +[5473] Forked 596 +[5472] Forked 597 +(596) found +(597) found +[5471] Forked 598 +[5470] Forked 599 +(598) found +(599) found +[5469] Forked 600 +[5468] Forked 601 +(600) found +(601) found +[5467] Forked 602 +[5466] Forked 603 +(602) found +(603) found +[5465] Forked 604 +[5464] Forked 606 +(604) found +(606) found +[5463] Forked 607 +[5462] Forked 609 +(607) found +(609) found +[5461] Forked 610 +[5460] Forked 612 +(610) found +(612) found +[5459] Forked 613 +[5458] Forked 615 +(613) found +(615) found +[5457] Forked 616 +[5456] Forked 617 +(616) found +(617) found +[5455] Forked 618 +[5454] Forked 619 +(618) found +(619) found +[5453] Forked 620 +[5452] Forked 621 +(620) found +(621) found +[5451] Forked 622 +[5450] Forked 623 +(622) found +(623) found +[5449] Forked 624 +[5448] Forked 625 +(624) found +(625) found +[5447] Forked 626 +[5446] Forked 627 +(626) found +(627) found +[5445] Forked 628 +[5444] Forked 629 +(628) found +(629) found +[5443] Forked 630 +[5442] Forked 631 +(630) found +(631) found +[5441] Forked 632 +[5440] Forked 633 +(632) found +(633) found +[5439] Forked 634 +[5438] Forked 635 +(634) found +(635) found +[5437] Forked 636 +(636) found +[5436] Forked 637 +(637) found +[5435] Forked 638 +(638) found +[5434] Forked 639 +(639) found +[5433] Forked 640 +(640) found +[5432] Forked 641 +(641) found +[5431] Forked 642 +(642) found +[5430] Forked 643 +(643) found +[5429] Forked 644 +(644) found +[5428] Forked 645 +(645) found +[5427] Forked 646 +(646) found +[5426] Forked 647 +(647) found +[5425] Forked 648 +(648) found +[5424] Forked 649 +(649) found +[5423] Forked 650 +(650) found +[5422] Forked 651 +(651) found +[5421] Forked 652 +(652) found +[5420] Forked 653 +(653) found +[5419] Forked 654 +(654) found +[5418] Forked 655 +(655) found +[5417] Forked 656 +(656) found +[5416] Forked 657 +(657) found +[5415] Forked 658 +(658) found +[5414] Forked 659 +(659) found +[5413] Forked 660 +(660) found +[5412] Forked 661 +(661) found +[5411] Forked 662 +(662) found +[5410] Forked 663 +(663) found +[5409] Forked 664 +(664) found +[5408] Forked 665 +(665) found +[5407] Forked 666 +(666) found +[5406] Forked 667 +(667) found +[5405] Forked 668 +(668) found +[5404] Forked 669 +(669) found +[5403] Forked 670 +(670) found +[5402] Forked 671 +(671) found +[5401] Forked 672 +[5400] Forked 673 +(672) found +(673) found +[5399] Forked 674 +[5398] Forked 675 +(674) found +(675) found +[5397] Forked 677 +[5396] Forked 678 +(677) found +(678) found +[5395] Forked 679 +[5394] Forked 680 +(679) found +(680) found +[5393] Forked 681 +[5392] Forked 682 +(681) found +(682) found +[5391] Forked 683 +[5390] Forked 684 +(683) found +(684) found +[5389] Forked 685 +[5388] Forked 686 +(685) found +(686) found +[5387] Forked 687 +[5386] Forked 688 +(687) found +(688) found +[5385] Forked 689 +[5384] Forked 690 +(689) found +(690) found +[5383] Forked 691 +[5382] Forked 692 +(691) found +(692) found +[5381] Forked 693 +[5380] Forked 694 +(693) found +(694) found +[5379] Forked 695 +[5378] Forked 696 +(695) found +(696) found +[5377] Forked 697 +[5376] Forked 698 +(697) found +(698) found +[5375] Forked 699 +[5374] Forked 700 +(699) found +(700) found +[5373] Forked 701 +[5372] Forked 702 +(701) found +(702) found +[5371] Forked 703 +[5370] Forked 704 +(703) found +(704) found +[5369] Forked 705 +[5368] Forked 706 +(705) found +(706) found +[5367] Forked 707 +[5366] Forked 708 +(707) found +(708) found +[5365] Forked 709 +[5364] Forked 710 +(709) found +(710) found +[5363] Forked 711 +[5362] Forked 712 +(711) found +(712) found +[5361] Forked 713 +(713) found +[5360] Forked 714 +[5359] Forked 715 +(714) found +(715) found +[5358] Forked 716 +[5357] Forked 717 +(716) found +(717) found +[5356] Forked 718 +[5355] Forked 719 +(718) found +(719) found +[5354] Forked 720 +[5353] Forked 721 +(720) found +(721) found +[5352] Forked 722 +[5351] Forked 723 +(722) found +(723) found +[5350] Forked 724 +[5349] Forked 725 +(724) found +(725) found +[5348] Forked 726 +[5347] Forked 727 +(726) found +(727) found +[5346] Forked 728 +[5345] Forked 729 +(728) found +(729) found +[5344] Forked 730 +[5343] Forked 731 +(730) found +(731) found +[5342] Forked 732 +[5341] Forked 734 +(732) found +(734) found +[5340] Forked 735 +[5339] Forked 737 +(735) found +(737) found +[5338] Forked 740 +[5337] Forked 742 +(740) found +(742) found +[5336] Forked 744 +[5335] Forked 745 +(744) found +(745) found +[5334] Forked 746 +[5333] Forked 747 +(746) found +(747) found +[5332] Forked 748 +[5331] Forked 749 +(748) found +(749) found +[5330] Forked 750 +[5329] Forked 751 +(750) found +(751) found +[5328] Forked 752 +[5327] Forked 753 +(752) found +(753) found +[5326] Forked 754 +[5325] Forked 755 +(754) found +(755) found +[5324] Forked 756 +[5323] Forked 757 +(756) found +(757) found +[5322] Forked 758 +[5321] Forked 759 +(758) found +(759) found +[5320] Forked 760 +[5319] Forked 761 +(760) found +(761) found +[5318] Forked 762 +[5317] Forked 763 +(762) found +(763) found +[5316] Forked 764 +[5315] Forked 765 +(764) found +(765) found +[5314] Forked 766 +[5313] Forked 767 +(766) found +(767) found +[5312] Forked 768 +[5311] Forked 769 +(768) found +(769) found +[5310] Forked 770 +[5309] Forked 771 +(770) found +(771) found +[5308] Forked 772 +(772) found +[5307] Forked 773 +(773) found +[5306] Forked 774 +(774) found +[5305] Forked 775 +(775) found +[5304] Forked 776 +(776) found +[5303] Forked 777 +(777) found +[5302] Forked 778 +(778) found +[5301] Forked 780 +(780) found +[5300] Forked 781 +(781) found +[5299] Forked 782 +(782) found +[5298] Forked 783 +(783) found +[5297] Forked 784 +(784) found +[5296] Forked 785 +(785) found +[5295] Forked 786 +(786) found +[5294] Forked 787 +(787) found +[5293] Forked 788 +(788) found +[5292] Forked 789 +(789) found +[5291] Forked 790 +(790) found +[5290] Forked 791 +(791) found +[5289] Forked 792 +(792) found +[5288] Forked 793 +(793) found +[5287] Forked 794 +(794) found +[5286] Forked 795 +(795) found +[5285] Forked 796 +(796) found +[5284] Forked 797 +(797) found +[5283] Forked 798 +(798) found +[5282] Forked 799 +(799) found +[5281] Forked 800 +(800) found +[5280] Forked 801 +(801) found +[5279] Forked 802 +(802) found +[5278] Forked 803 +(803) found +[5277] Forked 804 +(804) found +[5276] Forked 805 +(805) found +[5275] Forked 806 +(806) found +[5274] Forked 807 +[5273] Forked 808 +(807) found +(808) found +[5272] Forked 809 +(809) found +[5271] Forked 810 +(810) found +[5270] Forked 811 +(811) found +[5269] Forked 812 +(812) found +[5268] Forked 813 +(813) found +[5267] Forked 814 +(814) found +[5266] Forked 815 +(815) found +[5265] Forked 816 +(816) found +[5264] Forked 817 +(817) found +[5263] Forked 818 +(818) found +[5262] Forked 819 +(819) found +[5261] Forked 820 +(820) found +[5260] Forked 821 +(821) found +[5259] Forked 822 +(822) found +[5258] Forked 823 +(823) found +[5257] Forked 824 +(824) found +[5256] Forked 825 +(825) found +[5255] Forked 826 +(826) found +[5254] Forked 827 +(827) found +[5253] Forked 828 +(828) found +[5252] Forked 829 +(829) found +[5251] Forked 830 +(830) found +[5250] Forked 831 +(831) found +[5249] Forked 832 +(832) found +[5248] Forked 833 +(833) found +[5247] Forked 834 +(834) found +[5246] Forked 835 +(835) found +[5245] Forked 836 +(836) found +[5244] Forked 837 +(837) found +[5243] Forked 838 +(838) found +[5242] Forked 839 +[5241] Forked 840 +(839) found +(840) found +[5240] Forked 841 +[5239] Forked 842 +(841) found +(842) found +[5238] Forked 843 +[5237] Forked 844 +(843) found +(844) found +[5236] Forked 845 +[5235] Forked 847 +(845) found +(847) found +[5234] Forked 848 +[5233] Forked 849 +(848) found +(849) found +[5232] Forked 850 +[5231] Forked 851 +(850) found +(851) found +[5230] Forked 852 +[5229] Forked 853 +(852) found +(853) found +[5228] Forked 854 +[5227] Forked 855 +(854) found +(855) found +[5226] Forked 856 +[5225] Forked 857 +(856) found +(857) found +[5224] Forked 858 +[5223] Forked 859 +(858) found +(859) found +[5222] Forked 860 +[5221] Forked 861 +(860) found +(861) found +[5220] Forked 862 +[5219] Forked 863 +(862) found +(863) found +[5218] Forked 864 +[5217] Forked 865 +(864) found +(865) found +[5216] Forked 866 +[5215] Forked 867 +(866) found +(867) found +[5214] Forked 868 +[5213] Forked 869 +(868) found +(869) found +[5212] Forked 870 +[5211] Forked 871 +(870) found +(871) found +[5210] Forked 872 +[5209] Forked 873 +(872) found +(873) found +[5208] Forked 874 +[5207] Forked 875 +(874) found +(875) found +[5206] Forked 876 +[5205] Forked 877 +(876) found +(877) found +[5204] Forked 878 +[5203] Forked 879 +(878) found +(879) found +[5202] Forked 880 +[5201] Forked 881 +(880) found +(881) found +[5200] Forked 882 +[5199] Forked 883 +(882) found +(883) found +[5198] Forked 884 +[5197] Forked 885 +(885) found +(884) found +[5196] Forked 886 +(886) found +[5195] Forked 887 +(887) found +[5194] Forked 888 +(888) found +[5193] Forked 889 +(889) found +[5192] Forked 890 +(890) found +[5191] Forked 891 +(891) found +[5190] Forked 892 +(892) found +[5189] Forked 893 +(893) found +[5188] Forked 894 +(894) found +[5187] Forked 895 +(895) found +[5186] Forked 896 +(896) found +[5185] Forked 897 +(897) found +[5184] Forked 898 +(898) found +[5183] Forked 899 +(899) found +[5182] Forked 900 +(900) found +[5181] Forked 901 +(901) found +[5180] Forked 902 +(902) found +[5179] Forked 903 +(903) found +[5178] Forked 904 +(904) found +[5177] Forked 905 +(905) found +[5176] Forked 906 +(906) found +[5175] Forked 907 +(907) found +[5174] Forked 908 +(908) found +[5173] Forked 909 +(909) found +[5172] Forked 910 +(910) found +[5171] Forked 911 +(911) found +[5170] Forked 912 +(912) found +[5169] Forked 913 +(913) found +[5168] Forked 914 +(914) found +[5167] Forked 915 +(915) found +[5166] Forked 916 +(916) found +[5165] Forked 917 +(917) found +[5164] Forked 918 +(918) found +[5163] Forked 919 +(919) found +[5162] Forked 920 +[5161] Forked 921 +(920) found +(921) found +[5160] Forked 922 +[5159] Forked 923 +(922) found +(923) found +[5158] Forked 924 +[5157] Forked 925 +(924) found +(925) found +[5156] Forked 926 +[5155] Forked 927 +(926) found +(927) found +[5154] Forked 928 +[5153] Forked 929 +(928) found +(929) found +[5152] Forked 930 +[5151] Forked 931 +(930) found +(931) found +[5150] Forked 932 +[5149] Forked 933 +(932) found +(933) found +[5148] Forked 934 +[5147] Forked 935 +(934) found +(935) found +[5146] Forked 936 +[5145] Forked 937 +(936) found +(937) found +[5144] Forked 938 +[5143] Forked 939 +(938) found +(939) found +[5142] Forked 940 +[5141] Forked 941 +(940) found +(941) found +[5140] Forked 942 +[5139] Forked 943 +(942) found +(943) found +[5138] Forked 944 +[5137] Forked 945 +(944) found +(945) found +[5136] Forked 946 +[5135] Forked 947 +(946) found +(947) found +[5134] Forked 948 +[5133] Forked 949 +(948) found +(949) found +[5132] Forked 950 +[5131] Forked 951 +(950) found +(951) found +[5130] Forked 952 +[5129] Forked 953 +(952) found +(953) found +[5128] Forked 954 +[5127] Forked 955 +(954) found +(955) found +[5126] Forked 956 +[5125] Forked 957 +(956) found +(957) found +[5124] Forked 958 +[5123] Forked 959 +(958) found +(959) found +[5122] Forked 960 +[5121] Forked 961 +(960) found +(961) found +[5120] Forked 962 +[5119] Forked 963 +(962) found +(963) found +[5118] Forked 964 +[5117] Forked 965 +(965) found +(964) found +[5116] Forked 966 +(966) found +[5115] Forked 967 +(967) found +[5114] Forked 968 +(968) found +[5113] Forked 969 +(969) found +[5112] Forked 970 +(970) found +[5111] Forked 971 +(971) found +[5110] Forked 972 +(972) found +[5109] Forked 973 +(973) found +[5108] Forked 974 +(974) found +[5107] Forked 975 +(975) found +[5106] Forked 976 +(976) found +[5105] Forked 977 +(977) found +[5104] Forked 978 +(978) found +[5103] Forked 979 +(979) found +[5102] Forked 980 +(980) found +[5101] Forked 981 +(981) found +[5100] Forked 982 +(982) found +[5099] Forked 983 +(983) found +[5098] Forked 984 +(984) found +[5097] Forked 985 +(985) found +[5096] Forked 986 +(986) found +[5095] Forked 987 +(987) found +[5094] Forked 988 +(988) found +[5093] Forked 989 +(989) found +[5092] Forked 990 +(990) found +[5091] Forked 991 +(991) found +[5090] Forked 992 +(992) found +[5089] Forked 993 +(993) found +[5088] Forked 994 +(994) found +[5087] Forked 995 +(995) found +[5086] Forked 996 +(996) found +[5085] Forked 997 +(997) found +[5084] Forked 998 +(998) found +[5083] Forked 999 +(999) found +[5082] Forked 1000 +(1000) found +[5081] Forked 1001 +(1001) found +[5080] Forked 1002 +(1002) found +[5079] Forked 1003 +(1003) found +[5078] Forked 1004 +(1004) found +[5077] Forked 1005 +(1005) found +[5076] Forked 1006 +(1006) found +[5075] Forked 1007 +(1007) found +[5074] Forked 1008 +(1008) found +[5073] Forked 1009 +(1009) found +[5072] Forked 1010 +(1010) found +[5071] Forked 1011 +(1011) found +[5070] Forked 1012 +(1012) found +[5069] Forked 1013 +(1013) found +[5068] Forked 1014 +(1014) found +[5067] Forked 1015 +(1015) found +[5066] Forked 1016 +(1016) found +[5065] Forked 1017 +(1017) found +[5064] Forked 1018 +(1018) found +[5063] Forked 1019 +(1019) found +[5062] Forked 1020 +(1020) found +[5061] Forked 1021 +(1021) found +[5060] Forked 1022 +(1022) found +[5059] Forked 1023 +(1023) found +[5058] Forked 1024 +(1024) found +[5057] Forked 1025 +(1025) found +[5056] Forked 1026 +(1026) found +[5055] Forked 1027 +(1027) found +[5054] Forked 1028 +(1028) found +[5053] Forked 1029 +(1029) found +[5052] Forked 1030 +(1030) found +[5051] Forked 1031 +(1031) found +[5050] Forked 1032 +(1032) found +[5049] Forked 1033 +(1033) found +[5048] Forked 1034 +(1034) found +[5047] Forked 1035 +(1035) found +[5046] Forked 1036 +[5045] Forked 1037 +(1036) found +(1037) found +[5044] Forked 1038 +[5043] Forked 1039 +(1038) found +(1039) found +[5042] Forked 1040 +[5041] Forked 1041 +(1040) found +(1041) found +[5040] Forked 1042 +[5039] Forked 1043 +(1042) found +(1043) found +[5038] Forked 1044 +[5037] Forked 1045 +(1044) found +(1045) found +[5036] Forked 1046 +[5035] Forked 1047 +(1046) found +(1047) found +[5034] Forked 1048 +[5033] Forked 1049 +(1048) found +(1049) found +[5032] Forked 1050 +[5031] Forked 1051 +(1050) found +(1051) found +[5030] Forked 1052 +[5029] Forked 1053 +(1052) found +(1053) found +[5028] Forked 1054 +[5027] Forked 1055 +(1054) found +(1055) found +[5026] Forked 1056 +[5025] Forked 1057 +(1056) found +(1057) found +[5024] Forked 1058 +[5023] Forked 1059 +(1058) found +(1059) found +[5022] Forked 1060 +[5021] Forked 1061 +(1060) found +(1061) found +[5020] Forked 1062 +[5019] Forked 1063 +(1062) found +(1063) found +[5018] Forked 1064 +[5017] Forked 1065 +(1064) found +(1065) found +[5016] Forked 1066 +[5015] Forked 1067 +(1066) found +(1067) found +[5014] Forked 1068 +[5013] Forked 1069 +(1068) found +(1069) found +[5012] Forked 1070 +[5011] Forked 1071 +(1070) found +(1071) found +[5010] Forked 1072 +[5009] Forked 1073 +(1072) found +(1073) found +[5008] Forked 1074 +[5007] Forked 1075 +(1074) found +(1075) found +[5006] Forked 1076 +[5005] Forked 1077 +(1076) found +(1077) found +[5004] Forked 1078 +[5003] Forked 1079 +(1078) found +(1079) found +[5002] Forked 1080 +[5001] Forked 1081 +(1080) found +(1081) found +[5000] Forked 1082 +[4999] Forked 1083 +(1082) found +(1083) found +[4998] Forked 1084 +[4997] Forked 1085 +(1084) found +(1085) found +[4996] Forked 1086 +[4995] Forked 1087 +(1086) found +(1087) found +[4994] Forked 1088 +[4993] Forked 1089 +(1088) found +(1089) found +[4992] Forked 1090 +[4991] Forked 1091 +(1090) found +(1091) found +[4990] Forked 1092 +[4989] Forked 1093 +(1092) found +(1093) found +[4988] Forked 1094 +[4987] Forked 1095 +(1094) found +(1095) found +[4986] Forked 1096 +[4985] Forked 1097 +(1096) found +(1097) found +[4984] Forked 1098 +[4983] Forked 1099 +(1098) found +(1099) found +[4982] Forked 1100 +[4981] Forked 1101 +(1100) found +(1101) found +[4980] Forked 1102 +[4979] Forked 1103 +(1102) found +(1103) found +[4978] Forked 1104 +[4977] Forked 1105 +(1104) found +(1105) found +[4976] Forked 1106 +[4975] Forked 1108 +(1106) found +(1108) found +[4974] Forked 1109 +[4973] Forked 1110 +(1109) found +(1110) found +[4972] Forked 1111 +[4971] Forked 1112 +(1111) found +(1112) found +[4970] Forked 1113 +[4969] Forked 1114 +(1113) found +(1114) found +[4968] Forked 1115 +[4967] Forked 1116 +(1115) found +(1116) found +[4966] Forked 1117 +[4965] Forked 1118 +(1117) found +(1118) found +[4964] Forked 1119 +[4963] Forked 1120 +(1119) found +(1120) found +[4962] Forked 1121 +[4961] Forked 1122 +(1121) found +(1122) found +[4960] Forked 1123 +[4959] Forked 1124 +(1123) found +(1124) found +[4958] Forked 1125 +(1125) found +[4957] Forked 1126 +(1126) found +[4956] Forked 1127 +(1127) found +[4955] Forked 1128 +(1128) found +[4954] Forked 1129 +(1129) found +[4953] Forked 1130 +(1130) found +[4952] Forked 1131 +(1131) found +[4951] Forked 1132 +(1132) found +[4950] Forked 1133 +[4949] Forked 1134 +(1133) found +(1134) found +[4948] Forked 1135 +[4947] Forked 1136 +(1135) found +(1136) found +[4946] Forked 1137 +[4945] Forked 1138 +(1137) found +(1138) found +[4944] Forked 1139 +[4943] Forked 1140 +(1139) found +(1140) found +[4942] Forked 1141 +[4941] Forked 1142 +(1141) found +(1142) found +[4940] Forked 1143 +[4939] Forked 1144 +(1143) found +(1144) found +[4938] Forked 1145 +[4937] Forked 1146 +(1145) found +(1146) found +[4936] Forked 1147 +[4935] Forked 1148 +(1147) found +(1148) found +[4934] Forked 1149 +[4933] Forked 1150 +(1149) found +(1150) found +[4932] Forked 1151 +[4931] Forked 1152 +(1151) found +(1152) found +[4930] Forked 1153 +[4929] Forked 1154 +(1153) found +(1154) found +[4928] Forked 1155 +[4927] Forked 1156 +(1155) found +(1156) found +[4926] Forked 1157 +[4925] Forked 1158 +(1157) found +(1158) found +[4924] Forked 1159 +[4923] Forked 1160 +(1159) found +(1160) found +[4922] Forked 1161 +[4921] Forked 1162 +(1161) found +(1162) found +[4920] Forked 1163 +[4919] Forked 1164 +(1163) found +(1164) found +[4918] Forked 1165 +[4917] Forked 1166 +(1165) found +(1166) found +[4916] Forked 1167 +(1167) found +[4915] Forked 1168 +(1168) found +[4914] Forked 1169 +(1169) found +[4913] Forked 1170 +(1170) found +[4912] Forked 1171 +(1171) found +[4911] Forked 1172 +(1172) found +[4910] Forked 1173 +(1173) found +[4909] Forked 1174 +(1174) found +[4908] Forked 1175 +(1175) found +[4907] Forked 1176 +(1176) found +[4906] Forked 1177 +(1177) found +[4905] Forked 1178 +(1178) found +[4904] Forked 1179 +(1179) found +[4903] Forked 1180 +(1180) found +[4902] Forked 1181 +(1181) found +[4901] Forked 1182 +(1182) found +[4900] Forked 1183 +(1183) found +[4899] Forked 1184 +(1184) found +[4898] Forked 1185 +(1185) found +[4897] Forked 1186 +(1186) found +[4896] Forked 1187 +(1187) found +[4895] Forked 1188 +(1188) found +[4894] Forked 1190 +(1190) found +[4893] Forked 1191 +(1191) found +[4892] Forked 1192 +(1192) found +[4891] Forked 1193 +(1193) found +[4890] Forked 1194 +(1194) found +[4889] Forked 1195 +(1195) found +[4888] Forked 1196 +(1196) found +[4887] Forked 1197 +(1197) found +[4886] Forked 1198 +(1198) found +[4885] Forked 1199 +(1199) found +[4884] Forked 1200 +(1200) found +[4883] Forked 1201 +(1201) found +[4882] Forked 1202 +(1202) found +[4881] Forked 1203 +(1203) found +[4880] Forked 1204 +[4879] Forked 1205 +(1204) found +(1205) found +[4878] Forked 1206 +[4877] Forked 1207 +(1206) found +(1207) found +[4876] Forked 1208 +[4875] Forked 1209 +(1208) found +(1209) found +[4874] Forked 1210 +[4873] Forked 1211 +(1210) found +(1211) found +[4872] Forked 1212 +[4871] Forked 1213 +(1212) found +(1213) found +[4870] Forked 1214 +[4869] Forked 1215 +(1214) found +(1215) found +[4868] Forked 1216 +[4867] Forked 1217 +(1216) found +(1217) found +[4866] Forked 1218 +[4865] Forked 1219 +(1218) found +(1219) found +[4864] Forked 1220 +[4863] Forked 1221 +(1220) found +(1221) found +[4862] Forked 1222 +[4861] Forked 1223 +(1222) found +(1223) found +[4860] Forked 1224 +[4859] Forked 1225 +(1224) found +(1225) found +[4858] Forked 1226 +[4857] Forked 1227 +(1226) found +(1227) found +[4856] Forked 1228 +[4855] Forked 1229 +(1228) found +(1229) found +[4854] Forked 1230 +[4853] Forked 1231 +(1230) found +(1231) found +[4852] Forked 1232 +[4851] Forked 1233 +(1232) found +(1233) found +[4850] Forked 1234 +[4849] Forked 1235 +(1234) found +(1235) found +[4848] Forked 1236 +[4847] Forked 1237 +(1236) found +(1237) found +[4846] Forked 1238 +[4845] Forked 1239 +(1238) found +(1239) found +[4844] Forked 1240 +[4843] Forked 1241 +(1240) found +(1241) found +[4842] Forked 1242 +[4841] Forked 1243 +(1242) found +(1243) found +[4840] Forked 1244 +[4839] Forked 1245 +(1244) found +(1245) found +[4838] Forked 1246 +[4837] Forked 1247 +(1246) found +(1247) found +[4836] Forked 1248 +[4835] Forked 1249 +(1248) found +(1249) found +[4834] Forked 1250 +[4833] Forked 1251 +(1250) found +(1251) found +[4832] Forked 1252 +(1252) found +[4831] Forked 1253 +[4830] Forked 1254 +(1253) found +(1254) found +[4829] Forked 1255 +[4828] Forked 1256 +(1255) found +(1256) found +[4827] Forked 1257 +[4826] Forked 1258 +(1257) found +(1258) found +[4825] Forked 1259 +[4824] Forked 1260 +(1259) found +(1260) found +[4823] Forked 1261 +[4822] Forked 1262 +(1261) found +(1262) found +[4821] Forked 1263 +[4820] Forked 1264 +(1263) found +(1264) found +[4819] Forked 1265 +[4818] Forked 1266 +(1265) found +(1266) found +[4817] Forked 1267 +[4816] Forked 1268 +(1267) found +(1268) found +[4815] Forked 1269 +[4814] Forked 1270 +(1269) found +(1270) found +[4813] Forked 1271 +[4812] Forked 1272 +(1271) found +(1272) found +[4811] Forked 1273 +[4810] Forked 1274 +(1273) found +(1274) found +[4809] Forked 1275 +[4808] Forked 1276 +(1275) found +(1276) found +[4807] Forked 1277 +[4806] Forked 1278 +(1277) found +(1278) found +[4805] Forked 1279 +[4804] Forked 1280 +(1279) found +(1280) found +[4803] Forked 1281 +[4802] Forked 1282 +(1281) found +(1282) found +[4801] Forked 1283 +[4800] Forked 1284 +(1283) found +(1284) found +[4799] Forked 1285 +[4798] Forked 1286 +(1285) found +(1286) found +[4797] Forked 1287 +[4796] Forked 1288 +(1287) found +(1288) found +[4795] Forked 1289 +[4794] Forked 1290 +(1289) found +(1290) found +[4793] Forked 1291 +(1291) found +[4792] Forked 1292 +(1292) found +[4791] Forked 1293 +(1293) found +[4790] Forked 1294 +(1294) found +[4789] Forked 1295 +(1295) found +[4788] Forked 1296 +(1296) found +[4787] Forked 1297 +(1297) found +[4786] Forked 1298 +(1298) found +[4785] Forked 1299 +(1299) found +[4784] Forked 1300 +(1300) found +[4783] Forked 1301 +(1301) found +[4782] Forked 1302 +(1302) found +[4781] Forked 1303 +(1303) found +[4780] Forked 1304 +(1304) found +[4779] Forked 1305 +(1305) found +[4778] Forked 1306 +(1306) found +[4777] Forked 1307 +(1307) found +[4776] Forked 1308 +(1308) found +[4775] Forked 1309 +(1309) found +[4774] Forked 1310 +(1310) found +[4773] Forked 1312 +(1312) found +[4772] Forked 1313 +(1313) found +[4771] Forked 1314 +(1314) found +[4770] Forked 1315 +(1315) found +[4769] Forked 1316 +(1316) found +[4768] Forked 1317 +(1317) found +[4767] Forked 1318 +(1318) found +[4766] Forked 1319 +(1319) found +[4765] Forked 1320 +(1320) found +[4764] Forked 1321 +(1321) found +[4763] Forked 1322 +(1322) found +[4762] Forked 1323 +(1323) found +[4761] Forked 1324 +(1324) found +[4760] Forked 1325 +(1325) found +[4759] Forked 1326 +[4758] Forked 1327 +(1326) found +(1327) found +[4757] Forked 1328 +[4756] Forked 1329 +(1328) found +(1329) found +[4755] Forked 1330 +[4754] Forked 1331 +(1330) found +(1331) found +[4753] Forked 1332 +[4752] Forked 1333 +(1332) found +(1333) found +[4751] Forked 1334 +[4750] Forked 1335 +(1334) found +(1335) found +[4749] Forked 1336 +[4748] Forked 1337 +(1336) found +(1337) found +[4747] Forked 1338 +[4746] Forked 1339 +(1338) found +(1339) found +[4745] Forked 1340 +[4744] Forked 1341 +(1340) found +(1341) found +[4743] Forked 1342 +[4742] Forked 1343 +(1342) found +(1343) found +[4741] Forked 1344 +[4740] Forked 1345 +(1344) found +(1345) found +[4739] Forked 1346 +[4738] Forked 1347 +(1346) found +(1347) found +[4737] Forked 1348 +[4736] Forked 1349 +(1348) found +(1349) found +[4735] Forked 1350 +[4734] Forked 1351 +(1350) found +(1351) found +[4733] Forked 1352 +[4732] Forked 1353 +(1352) found +(1353) found +[4731] Forked 1354 +[4730] Forked 1355 +(1354) found +(1355) found +[4729] Forked 1356 +[4728] Forked 1357 +(1356) found +(1357) found +[4727] Forked 1358 +[4726] Forked 1359 +(1358) found +(1359) found +[4725] Forked 1360 +[4724] Forked 1361 +(1360) found +(1361) found +[4723] Forked 1362 +[4722] Forked 1363 +(1362) found +(1363) found +[4721] Forked 1364 +[4720] Forked 1365 +(1364) found +(1365) found +[4719] Forked 1366 +[4718] Forked 1367 +(1366) found +(1367) found +[4717] Forked 1368 +[4716] Forked 1369 +(1368) found +(1369) found +[4715] Forked 1370 +[4714] Forked 1371 +(1370) found +(1371) found +[4713] Forked 1372 +(1372) found +[4712] Forked 1373 +(1373) found +[4711] Forked 1374 +(1374) found +[4710] Forked 1375 +(1375) found +[4709] Forked 1376 +(1376) found +[4708] Forked 1377 +(1377) found +[4707] Forked 1378 +(1378) found +[4706] Forked 1379 +(1379) found +[4705] Forked 1380 +(1380) found +[4704] Forked 1381 +(1381) found +[4703] Forked 1382 +(1382) found +[4702] Forked 1383 +(1383) found +[4701] Forked 1384 +(1384) found +[4700] Forked 1385 +(1385) found +[4699] Forked 1386 +(1386) found +[4698] Forked 1387 +(1387) found +[4697] Forked 1388 +(1388) found +[4696] Forked 1389 +(1389) found +[4695] Forked 1390 +(1390) found +[4694] Forked 1391 +(1391) found +[4693] Forked 1392 +(1392) found +[4692] Forked 1393 +(1393) found +[4691] Forked 1394 +(1394) found +[4690] Forked 1395 +(1395) found +[4689] Forked 1396 +(1396) found +[4688] Forked 1397 +(1397) found +[4687] Forked 1398 +(1398) found +[4686] Forked 1399 +(1399) found +[4685] Forked 1400 +(1400) found +[4684] Forked 1401 +(1401) found +[4683] Forked 1402 +(1402) found +[4682] Forked 1403 +(1403) found +[4681] Forked 1404 +(1404) found +[4680] Forked 1405 +(1405) found +[4679] Forked 1406 +[4678] Forked 1407 +(1406) found +(1407) found +[4677] Forked 1408 +[4676] Forked 1409 +(1408) found +(1409) found +[4675] Forked 1410 +[4674] Forked 1411 +(1410) found +(1411) found +[4673] Forked 1412 +[4672] Forked 1413 +(1412) found +(1413) found +[4671] Forked 1414 +[4670] Forked 1415 +(1414) found +(1415) found +[4669] Forked 1416 +[4668] Forked 1417 +(1416) found +(1417) found +[4667] Forked 1418 +[4666] Forked 1419 +(1418) found +(1419) found +[4665] Forked 1420 +[4664] Forked 1421 +(1420) found +(1421) found +[4663] Forked 1422 +[4662] Forked 1423 +(1422) found +(1423) found +[4661] Forked 1424 +[4660] Forked 1425 +(1424) found +(1425) found +[4659] Forked 1426 +[4658] Forked 1427 +(1426) found +(1427) found +[4657] Forked 1428 +[4656] Forked 1429 +(1428) found +(1429) found +[4655] Forked 1430 +[4654] Forked 1431 +(1431) found +(1430) found +[4653] Forked 1432 +(1432) found +[4652] Forked 1433 +(1433) found +[4651] Forked 1434 +(1434) found +[4650] Forked 1435 +(1435) found +[4649] Forked 1436 +(1436) found +[4648] Forked 1437 +(1437) found +[4647] Forked 1438 +(1438) found +[4646] Forked 1440 +(1440) found +[4645] Forked 1441 +(1441) found +[4644] Forked 1442 +(1442) found +[4643] Forked 1443 +(1443) found +[4642] Forked 1444 +(1444) found +[4641] Forked 1445 +(1445) found +[4640] Forked 1446 +(1446) found +[4639] Forked 1447 +(1447) found +[4638] Forked 1448 +(1448) found +[4637] Forked 1449 +(1449) found +[4636] Forked 1450 +(1450) found +[4635] Forked 1451 +(1451) found +[4634] Forked 1452 +(1452) found +[4633] Forked 1453 +(1453) found +[4632] Forked 1454 +(1454) found +[4631] Forked 1455 +(1455) found +[4630] Forked 1456 +(1456) found +[4629] Forked 1457 +(1457) found +[4628] Forked 1458 +(1458) found +[4627] Forked 1459 +(1459) found +[4626] Forked 1460 +(1460) found +[4625] Forked 1461 +(1461) found +[4624] Forked 1462 +(1462) found +[4623] Forked 1463 +(1463) found +[4622] Forked 1464 +(1464) found +[4621] Forked 1465 +(1465) found +[4620] Forked 1466 +(1466) found +[4619] Forked 1467 +(1467) found +[4618] Forked 1468 +(1468) found +[4617] Forked 1469 +(1469) found +[4616] Forked 1470 +(1470) found +[4615] Forked 1471 +(1471) found +[4614] Forked 1472 +(1472) found +[4613] Forked 1473 +(1473) found +[4612] Forked 1474 +(1474) found +[4611] Forked 1475 +(1475) found +[4610] Forked 1476 +(1476) found +[4609] Forked 1477 +(1477) found +[4608] Forked 1478 +(1478) found +[4607] Forked 1479 +(1479) found +[4606] Forked 1480 +(1480) found +[4605] Forked 1481 +(1481) found +[4604] Forked 1482 +(1482) found +[4603] Forked 1483 +(1483) found +[4602] Forked 1484 +(1484) found +[4601] Forked 1485 +(1485) found +[4600] Forked 1486 +(1486) found +[4599] Forked 1487 +(1487) found +[4598] Forked 1488 +(1488) found +[4597] Forked 1489 +(1489) found +[4596] Forked 1490 +(1490) found +[4595] Forked 1491 +(1491) found +[4594] Forked 1492 +(1492) found +[4593] Forked 1493 +(1493) found +[4592] Forked 1494 +(1494) found +[4591] Forked 1495 +(1495) found +[4590] Forked 1496 +(1496) found +[4589] Forked 1497 +(1497) found +[4588] Forked 1498 +(1498) found +[4587] Forked 1499 +(1499) found +[4586] Forked 1500 +(1500) found +[4585] Forked 1501 +(1501) found +[4584] Forked 1502 +(1502) found +[4583] Forked 1503 +(1503) found +[4582] Forked 1504 +(1504) found +[4581] Forked 1505 +(1505) found +[4580] Forked 1506 +(1506) found +[4579] Forked 1507 +(1507) found +[4578] Forked 1508 +(1508) found +[4577] Forked 1509 +(1509) found +[4576] Forked 1510 +(1510) found +[4575] Forked 1511 +(1511) found +[4574] Forked 1512 +(1512) found +[4573] Forked 1513 +(1513) found +[4572] Forked 1514 +(1514) found +[4571] Forked 1515 +[4570] Forked 1516 +(1515) found +(1516) found +[4569] Forked 1517 +[4568] Forked 1518 +(1517) found +(1518) found +[4567] Forked 1519 +(1519) found +[4566] Forked 1520 +[4565] Forked 1521 +(1520) found +(1521) found +[4564] Forked 1522 +[4563] Forked 1523 +(1522) found +(1523) found +[4562] Forked 1524 +[4561] Forked 1525 +(1524) found +(1525) found +[4560] Forked 1526 +[4559] Forked 1527 +(1526) found +(1527) found +[4558] Forked 1528 +[4557] Forked 1529 +(1528) found +(1529) found +[4556] Forked 1530 +[4555] Forked 1531 +(1530) found +(1531) found +[4554] Forked 1532 +[4553] Forked 1533 +(1532) found +(1533) found +[4552] Forked 1534 +[4551] Forked 1535 +(1534) found +(1535) found +[4550] Forked 1536 +[4549] Forked 1537 +(1536) found +(1537) found +[4548] Forked 1538 +[4547] Forked 1539 +(1538) found +(1539) found +[4546] Forked 1540 +[4545] Forked 1541 +(1540) found +(1541) found +[4544] Forked 1542 +[4543] Forked 1543 +(1542) found +(1543) found +[4542] Forked 1544 +[4541] Forked 1545 +(1544) found +(1545) found +[4540] Forked 1546 +[4539] Forked 1547 +(1546) found +(1547) found +[4538] Forked 1548 +[4537] Forked 1549 +(1548) found +(1549) found +[4536] Forked 1550 +[4535] Forked 1551 +(1550) found +(1551) found +[4534] Forked 1552 +[4533] Forked 1553 +(1552) found +(1553) found +[4532] Forked 1554 +[4531] Forked 1555 +(1554) found +(1555) found +[4530] Forked 1556 +[4529] Forked 1557 +(1556) found +(1557) found +[4528] Forked 1558 +[4527] Forked 1559 +(1558) found +(1559) found +[4526] Forked 1560 +[4525] Forked 1561 +(1560) found +(1561) found +[4524] Forked 1562 +[4523] Forked 1563 +(1562) found +(1563) found +[4522] Forked 1564 +[4521] Forked 1565 +(1564) found +(1565) found +[4520] Forked 1566 +[4519] Forked 1567 +(1566) found +(1567) found +[4518] Forked 1568 +[4517] Forked 1569 +(1568) found +(1569) found +[4516] Forked 1570 +[4515] Forked 1571 +(1570) found +(1571) found +[4514] Forked 1572 +[4513] Forked 1573 +(1572) found +(1573) found +[4512] Forked 1574 +[4511] Forked 1575 +(1574) found +(1575) found +[4510] Forked 1576 +[4509] Forked 1577 +(1576) found +(1577) found +[4508] Forked 1578 +[4507] Forked 1579 +(1578) found +(1579) found +[4506] Forked 1580 +[4505] Forked 1581 +(1580) found +(1581) found +[4504] Forked 1582 +[4503] Forked 1583 +(1582) found +(1583) found +[4502] Forked 1584 +[4501] Forked 1585 +(1584) found +(1585) found +[4500] Forked 1586 +[4499] Forked 1587 +(1586) found +(1587) found +[4498] Forked 1588 +[4497] Forked 1589 +(1588) found +(1589) found +[4496] Forked 1590 +[4495] Forked 1591 +(1590) found +(1591) found +[4494] Forked 1592 +[4493] Forked 1593 +(1592) found +(1593) found +[4492] Forked 1595 +[4491] Forked 1596 +(1595) found +(1596) found +[4490] Forked 1597 +[4489] Forked 1598 +(1597) found +(1598) found +[4488] Forked 1599 +[4487] Forked 1600 +(1599) found +(1600) found +[4486] Forked 1601 +[4485] Forked 1602 +(1601) found +(1602) found +[4484] Forked 1603 +[4483] Forked 1604 +(1603) found +(1604) found +[4482] Forked 1605 +[4481] Forked 1606 +(1605) found +(1606) found +[4480] Forked 1607 +[4479] Forked 1608 +(1607) found +(1608) found +[4478] Forked 1609 +[4477] Forked 1611 +(1609) found +(1611) found +[4476] Forked 1612 +(1612) found +[4475] Forked 1613 +(1613) found +[4474] Forked 1614 +(1614) found +[4473] Forked 1615 +(1615) found +[4472] Forked 1616 +(1616) found +[4471] Forked 1617 +(1617) found +[4470] Forked 1618 +(1618) found +[4469] Forked 1619 +(1619) found +[4468] Forked 1620 +(1620) found +[4467] Forked 1621 +(1621) found +[4466] Forked 1622 +(1622) found +[4465] Forked 1623 +(1623) found +[4464] Forked 1624 +(1624) found +[4463] Forked 1625 +(1625) found +[4462] Forked 1626 +(1626) found +[4461] Forked 1627 +(1627) found +[4460] Forked 1628 +(1628) found +[4459] Forked 1629 +(1629) found +[4458] Forked 1630 +(1630) found +[4457] Forked 1631 +(1631) found +[4456] Forked 1632 +(1632) found +[4455] Forked 1633 +(1633) found +[4454] Forked 1634 +(1634) found +[4453] Forked 1635 +(1635) found +[4452] Forked 1636 +(1636) found +[4451] Forked 1637 +(1637) found +[4450] Forked 1638 +(1638) found +[4449] Forked 1639 +(1639) found +[4448] Forked 1640 +(1640) found +[4447] Forked 1641 +(1641) found +[4446] Forked 1642 +(1642) found +[4445] Forked 1643 +(1643) found +[4444] Forked 1644 +(1644) found +[4443] Forked 1645 +(1645) found +[4442] Forked 1646 +(1646) found +[4441] Forked 1647 +(1647) found +[4440] Forked 1648 +(1648) found +[4439] Forked 1649 +(1649) found +[4438] Forked 1650 +(1650) found +[4437] Forked 1651 +(1651) found +[4436] Forked 1652 +(1652) found +[4435] Forked 1653 +(1653) found +[4434] Forked 1654 +(1654) found +[4433] Forked 1655 +(1655) found +[4432] Forked 1656 +(1656) found +[4431] Forked 1657 +(1657) found +[4430] Forked 1658 +(1658) found +[4429] Forked 1659 +(1659) found +[4428] Forked 1660 +(1660) found +[4427] Forked 1661 +(1661) found +[4426] Forked 1662 +(1662) found +[4425] Forked 1663 +(1663) found +[4424] Forked 1664 +(1664) found +[4423] Forked 1665 +(1665) found +[4422] Forked 1666 +(1666) found +[4421] Forked 1668 +(1668) found +[4420] Forked 1669 +(1669) found +[4419] Forked 1670 +(1670) found +[4418] Forked 1671 +(1671) found +[4417] Forked 1672 +(1672) found +[4416] Forked 1673 +(1673) found +[4415] Forked 1674 +(1674) found +[4414] Forked 1675 +(1675) found +[4413] Forked 1676 +(1676) found +[4412] Forked 1677 +(1677) found +[4411] Forked 1679 +(1679) found +[4410] Forked 1680 +[4409] Forked 1681 +(1680) found +(1681) found +[4408] Forked 1682 +[4407] Forked 1683 +(1682) found +(1683) found +[4406] Forked 1684 +[4405] Forked 1685 +(1684) found +(1685) found +[4404] Forked 1686 +[4403] Forked 1687 +(1686) found +(1687) found +[4402] Forked 1688 +[4401] Forked 1689 +(1688) found +(1689) found +[4400] Forked 1690 +[4399] Forked 1691 +(1690) found +(1691) found +[4398] Forked 1692 +[4397] Forked 1693 +(1692) found +(1693) found +[4396] Forked 1694 +[4395] Forked 1695 +(1694) found +(1695) found +[4394] Forked 1696 +[4393] Forked 1697 +(1696) found +(1697) found +[4392] Forked 1698 +[4391] Forked 1699 +(1698) found +(1699) found +[4390] Forked 1700 +[4389] Forked 1701 +(1700) found +(1701) found +[4388] Forked 1702 +[4387] Forked 1703 +(1702) found +(1703) found +[4386] Forked 1704 +[4385] Forked 1705 +(1704) found +(1705) found +[4384] Forked 1706 +[4383] Forked 1707 +(1706) found +(1707) found +[4382] Forked 1708 +[4381] Forked 1709 +(1708) found +(1709) found +[4380] Forked 1710 +[4379] Forked 1711 +(1710) found +(1711) found +[4378] Forked 1712 +[4377] Forked 1713 +(1712) found +(1713) found +[4376] Forked 1714 +[4375] Forked 1715 +(1714) found +(1715) found +[4374] Forked 1716 +[4373] Forked 1717 +(1716) found +(1717) found +[4372] Forked 1718 +[4371] Forked 1719 +(1718) found +(1719) found +[4370] Forked 1720 +[4369] Forked 1721 +(1720) found +(1721) found +[4368] Forked 1722 +[4367] Forked 1723 +(1722) found +(1723) found +[4366] Forked 1724 +(1724) found +[4365] Forked 1725 +(1725) found +[4364] Forked 1726 +(1726) found +[4363] Forked 1727 +(1727) found +[4362] Forked 1728 +(1728) found +[4361] Forked 1729 +(1729) found +[4360] Forked 1730 +(1730) found +[4359] Forked 1731 +(1731) found +[4358] Forked 1732 +(1732) found +[4357] Forked 1733 +(1733) found +[4356] Forked 1734 +(1734) found +[4355] Forked 1735 +(1735) found +[4354] Forked 1736 +(1736) found +[4353] Forked 1737 +(1737) found +[4352] Forked 1738 +(1738) found +[4351] Forked 1739 +(1739) found +[4350] Forked 1740 +(1740) found +[4349] Forked 1741 +(1741) found +[4348] Forked 1742 +(1742) found +[4347] Forked 1743 +(1743) found +[4346] Forked 1744 +(1744) found +[4345] Forked 1745 +(1745) found +[4344] Forked 1746 +(1746) found +[4343] Forked 1747 +(1747) found +[4342] Forked 1748 +(1748) found +[4341] Forked 1749 +(1749) found +[4340] Forked 1750 +(1750) found +[4339] Forked 1751 +(1751) found +[4338] Forked 1752 +(1752) found +[4337] Forked 1753 +(1753) found +[4336] Forked 1754 +(1754) found +[4335] Forked 1755 +(1755) found +[4334] Forked 1756 +(1756) found +[4333] Forked 1757 +(1757) found +[4332] Forked 1758 +(1758) found +[4331] Forked 1760 +[4330] Forked 1761 +(1760) found +(1761) found +[4329] Forked 1762 +[4328] Forked 1763 +(1762) found +(1763) found +[4327] Forked 1764 +[4326] Forked 1765 +(1764) found +(1765) found +[4325] Forked 1766 +[4324] Forked 1767 +(1766) found +(1767) found +[4323] Forked 1768 +[4322] Forked 1769 +(1768) found +(1769) found +[4321] Forked 1770 +[4320] Forked 1771 +(1770) found +(1771) found +[4319] Forked 1772 +[4318] Forked 1773 +(1772) found +(1773) found +[4317] Forked 1774 +[4316] Forked 1775 +(1774) found +(1775) found +[4315] Forked 1776 +[4314] Forked 1777 +(1776) found +(1777) found +[4313] Forked 1778 +[4312] Forked 1779 +(1778) found +(1779) found +[4311] Forked 1780 +[4310] Forked 1781 +(1780) found +(1781) found +[4309] Forked 1782 +[4308] Forked 1783 +(1782) found +(1783) found +[4307] Forked 1784 +[4306] Forked 1785 +(1784) found +(1785) found +[4305] Forked 1786 +[4304] Forked 1787 +(1786) found +(1787) found +[4303] Forked 1788 +[4302] Forked 1789 +(1788) found +(1789) found +[4301] Forked 1790 +[4300] Forked 1791 +(1790) found +(1791) found +[4299] Forked 1792 +[4298] Forked 1793 +(1792) found +(1793) found +[4297] Forked 1794 +[4296] Forked 1795 +(1794) found +(1795) found +[4295] Forked 1796 +[4294] Forked 1797 +(1796) found +(1797) found +[4293] Forked 1798 +[4292] Forked 1799 +(1798) found +(1799) found +[4291] Forked 1800 +[4290] Forked 1801 +(1800) found +(1801) found +[4289] Forked 1802 +[4288] Forked 1803 +(1802) found +(1803) found +[4287] Forked 1804 +[4286] Forked 1805 +(1804) found +(1805) found +[4285] Forked 1806 +[4284] Forked 1807 +(1806) found +(1807) found +[4283] Forked 1808 +[4282] Forked 1809 +(1808) found +(1809) found +[4281] Forked 1810 +[4280] Forked 1811 +(1810) found +(1811) found +[4279] Forked 1812 +[4278] Forked 1813 +(1812) found +(1813) found +[4277] Forked 1814 +[4276] Forked 1815 +(1814) found +(1815) found +[4275] Forked 1816 +[4274] Forked 1817 +(1816) found +(1817) found +[4273] Forked 1818 +[4272] Forked 1819 +(1818) found +(1819) found +[4271] Forked 1820 +[4270] Forked 1821 +(1820) found +(1821) found +[4269] Forked 1822 +[4268] Forked 1823 +(1822) found +(1823) found +[4267] Forked 1824 +[4266] Forked 1825 +(1824) found +(1825) found +[4265] Forked 1826 +[4264] Forked 1827 +(1826) found +(1827) found +[4263] Forked 1828 +[4262] Forked 1829 +(1828) found +(1829) found +[4261] Forked 1830 +[4260] Forked 1831 +(1830) found +(1831) found +[4259] Forked 1832 +[4258] Forked 1833 +(1832) found +(1833) found +[4257] Forked 1834 +[4256] Forked 1835 +(1834) found +(1835) found +[4255] Forked 1836 +[4254] Forked 1837 +(1836) found +(1837) found +[4253] Forked 1838 +[4252] Forked 1839 +(1838) found +(1839) found +[4251] Forked 1840 +[4250] Forked 1841 +(1840) found +(1841) found +[4249] Forked 1842 +[4248] Forked 1843 +(1842) found +(1843) found +[4247] Forked 1844 +[4246] Forked 1845 +(1844) found +(1845) found +[4245] Forked 1846 +[4244] Forked 1847 +(1846) found +(1847) found +[4243] Forked 1848 +[4242] Forked 1849 +(1848) found +(1849) found +[4241] Forked 1850 +[4240] Forked 1851 +(1850) found +(1851) found +[4239] Forked 1852 +[4238] Forked 1853 +(1852) found +(1853) found +[4237] Forked 1854 +[4236] Forked 1855 +(1854) found +(1855) found +[4235] Forked 1856 +[4234] Forked 1857 +(1856) found +(1857) found +[4233] Forked 1858 +[4232] Forked 1859 +(1858) found +(1859) found +[4231] Forked 1860 +[4230] Forked 1861 +(1860) found +(1861) found +[4229] Forked 1862 +[4228] Forked 1863 +(1862) found +(1863) found +[4227] Forked 1864 +[4226] Forked 1865 +(1864) found +(1865) found +[4225] Forked 1866 +[4224] Forked 1867 +(1866) found +(1867) found +[4223] Forked 1868 +[4222] Forked 1869 +(1868) found +(1869) found +[4221] Forked 1870 +[4220] Forked 1871 +(1870) found +(1871) found +[4219] Forked 1872 +[4218] Forked 1873 +(1872) found +(1873) found +[4217] Forked 1874 +[4216] Forked 1875 +(1874) found +(1875) found +[4215] Forked 1876 +[4214] Forked 1877 +(1876) found +(1877) found +[4213] Forked 1878 +[4212] Forked 1879 +(1878) found +(1879) found +[4211] Forked 1880 +[4210] Forked 1881 +(1880) found +(1881) found +[4209] Forked 1882 +[4208] Forked 1883 +(1882) found +(1883) found +[4207] Forked 1884 +[4206] Forked 1885 +(1884) found +(1885) found +[4205] Forked 1886 +[4204] Forked 1887 +(1886) found +(1887) found +[4203] Forked 1888 +[4202] Forked 1889 +(1888) found +(1889) found +[4201] Forked 1890 +[4200] Forked 1891 +(1890) found +(1891) found +[4199] Forked 1892 +[4198] Forked 1893 +(1892) found +(1893) found +[4197] Forked 1894 +(1894) found +[4196] Forked 1895 +[4195] Forked 1896 +(1895) found +(1896) found +[4194] Forked 1897 +[4193] Forked 1898 +(1897) found +(1898) found +[4192] Forked 1899 +[4191] Forked 1900 +(1899) found +(1900) found +[4190] Forked 1901 +[4189] Forked 1902 +(1901) found +(1902) found +[4188] Forked 1903 +[4187] Forked 1904 +(1903) found +(1904) found +[4186] Forked 1905 +[4185] Forked 1906 +(1905) found +(1906) found +[4184] Forked 1907 +[4183] Forked 1908 +(1907) found +(1908) found +[4182] Forked 1909 +[4181] Forked 1910 +(1909) found +(1910) found +[4180] Forked 1911 +[4179] Forked 1912 +(1911) found +(1912) found +[4178] Forked 1913 +[4177] Forked 1914 +(1913) found +(1914) found +[4176] Forked 1915 +[4175] Forked 1916 +(1915) found +(1916) found +[4174] Forked 1917 +[4173] Forked 1918 +(1917) found +(1918) found +[4172] Forked 1919 +[4171] Forked 1920 +(1919) found +(1920) found +[4170] Forked 1921 +[4169] Forked 1922 +(1921) found +(1922) found +[4168] Forked 1923 +[4167] Forked 1924 +(1923) found +(1924) found +[4166] Forked 1925 +[4165] Forked 1926 +(1925) found +(1926) found +[4164] Forked 1927 +[4163] Forked 1928 +(1927) found +(1928) found +[4162] Forked 1929 +[4161] Forked 1930 +(1929) found +(1930) found +[4160] Forked 1931 +[4159] Forked 1932 +(1931) found +(1932) found +[4158] Forked 1933 +[4157] Forked 1934 +(1933) found +(1934) found +[4156] Forked 1935 +[4155] Forked 1936 +(1935) found +(1936) found +[4154] Forked 1937 +[4153] Forked 1938 +(1937) found +(1938) found +[4152] Forked 1939 +[4151] Forked 1940 +(1939) found +(1940) found +[4150] Forked 1941 +(1941) found +[4149] Forked 1942 +(1942) found +[4148] Forked 1943 +(1943) found +[4147] Forked 1944 +(1944) found +[4146] Forked 1945 +(1945) found +[4145] Forked 1946 +(1946) found +[4144] Forked 1947 +(1947) found +[4143] Forked 1948 +(1948) found +[4142] Forked 1949 +(1949) found +[4141] Forked 1950 +(1950) found +[4140] Forked 1951 +(1951) found +[4139] Forked 1952 +(1952) found +[4138] Forked 1953 +(1953) found +[4137] Forked 1954 +(1954) found +[4136] Forked 1955 +(1955) found +[4135] Forked 1956 +(1956) found +[4134] Forked 1957 +(1957) found +[4133] Forked 1958 +(1958) found +[4132] Forked 1959 +(1959) found +[4131] Forked 1960 +(1960) found +[4130] Forked 1961 +(1961) found +[4129] Forked 1962 +(1962) found +[4128] Forked 1963 +(1963) found +[4127] Forked 1964 +(1964) found +[4126] Forked 1965 +(1965) found +[4125] Forked 1966 +(1966) found +[4124] Forked 1967 +(1967) found +[4123] Forked 1968 +(1968) found +[4122] Forked 1969 +(1969) found +[4121] Forked 1970 +(1970) found +[4120] Forked 1971 +(1971) found +[4119] Forked 1972 +(1972) found +[4118] Forked 1973 +(1973) found +[4117] Forked 1974 +(1974) found +[4116] Forked 1975 +[4115] Forked 1976 +(1975) found +(1976) found +[4114] Forked 1977 +[4113] Forked 1978 +(1977) found +(1978) found +[4112] Forked 1979 +(1979) found +[4111] Forked 1980 +(1980) found +[4110] Forked 1981 +[4109] Forked 1982 +(1981) found +(1982) found +[4108] Forked 1983 +[4107] Forked 1984 +(1983) found +(1984) found +[4106] Forked 1985 +[4105] Forked 1986 +(1985) found +(1986) found +[4104] Forked 1987 +[4103] Forked 1988 +(1987) found +(1988) found +[4102] Forked 1989 +[4101] Forked 1990 +(1989) found +(1990) found +[4100] Forked 1991 +[4099] Forked 1992 +(1991) found +(1992) found +[4098] Forked 1993 +[4097] Forked 1994 +(1993) found +(1994) found +[4096] Forked 1995 +[4095] Forked 1996 +(1995) found +(1996) found +[4094] Forked 1997 +[4093] Forked 1998 +(1997) found +(1998) found +[4092] Forked 1999 +[4091] Forked 2000 +(1999) found +(2000) found +[4090] Forked 2001 +[4089] Forked 2002 +(2001) found +(2002) found +[4088] Forked 2003 +[4087] Forked 2004 +(2003) found +(2004) found +[4086] Forked 2005 +[4085] Forked 2006 +(2005) found +(2006) found +[4084] Forked 2007 +[4083] Forked 2008 +(2007) found +(2008) found +[4082] Forked 2009 +[4081] Forked 2010 +(2009) found +(2010) found +[4080] Forked 2011 +[4079] Forked 2012 +(2011) found +(2012) found +[4078] Forked 2013 +[4077] Forked 2014 +(2013) found +(2014) found +[4076] Forked 2015 +[4075] Forked 2016 +(2015) found +(2016) found +[4074] Forked 2017 +[4073] Forked 2018 +(2017) found +(2018) found +[4072] Forked 2019 +[4071] Forked 2020 +(2019) found +(2020) found +[4070] Forked 2021 +[4069] Forked 2022 +(2021) found +(2022) found +[4068] Forked 2023 +[4067] Forked 2024 +(2023) found +(2024) found +[4066] Forked 2025 +[4065] Forked 2026 +(2025) found +(2026) found +[4064] Forked 2027 +[4063] Forked 2028 +(2027) found +(2028) found +[4062] Forked 2029 +[4061] Forked 2030 +(2029) found +(2030) found +[4060] Forked 2031 +[4059] Forked 2032 +(2031) found +(2032) found +[4058] Forked 2033 +[4057] Forked 2034 +(2033) found +(2034) found +[4056] Forked 2035 +[4055] Forked 2036 +(2035) found +(2036) found +[4054] Forked 2037 +[4053] Forked 2038 +(2037) found +(2038) found +[4052] Forked 2039 +[4051] Forked 2040 +(2039) found +(2040) found +[4050] Forked 2041 +[4049] Forked 2042 +(2041) found +(2042) found +[4048] Forked 2043 +[4047] Forked 2044 +(2043) found +(2044) found +[4046] Forked 2045 +[4045] Forked 2046 +(2045) found +(2046) found +[4044] Forked 2047 +[4043] Forked 2048 +(2047) found +(2048) found +[4042] Forked 2049 +[4041] Forked 2050 +(2049) found +(2050) found +[4040] Forked 2051 +[4039] Forked 2052 +(2051) found +(2052) found +[4038] Forked 2053 +[4037] Forked 2054 +(2053) found +(2054) found +[4036] Forked 2055 +[4035] Forked 2056 +(2055) found +(2056) found +[4034] Forked 2057 +[4033] Forked 2058 +(2057) found +(2058) found +[4032] Forked 2059 +[4031] Forked 2060 +(2059) found +(2060) found +[4030] Forked 2061 +[4029] Forked 2062 +(2061) found +(2062) found +[4028] Forked 2063 +[4027] Forked 2064 +(2063) found +(2064) found +[4026] Forked 2065 +[4025] Forked 2066 +(2065) found +(2066) found +[4024] Forked 2067 +[4023] Forked 2068 +(2067) found +(2068) found +[4022] Forked 2070 +[4021] Forked 2071 +(2070) found +(2071) found +[4020] Forked 2072 +[4019] Forked 2073 +(2072) found +(2073) found +[4018] Forked 2074 +[4017] Forked 2075 +(2074) found +(2075) found +[4016] Forked 2076 +[4015] Forked 2077 +(2076) found +(2077) found +[4014] Forked 2078 +[4013] Forked 2079 +(2078) found +(2079) found +[4012] Forked 2080 +[4011] Forked 2081 +(2080) found +(2081) found +[4010] Forked 2082 +[4009] Forked 2083 +(2082) found +(2083) found +[4008] Forked 2084 +[4007] Forked 2085 +(2084) found +(2085) found +[4006] Forked 2086 +[4005] Forked 2087 +(2086) found +(2087) found +[4004] Forked 2088 +[4003] Forked 2089 +(2088) found +(2089) found +[4002] Forked 2090 +[4001] Forked 2091 +(2090) found +(2091) found +[4000] Forked 2092 +[3999] Forked 2093 +(2092) found +(2093) found +[3998] Forked 2094 +[3997] Forked 2095 +(2094) found +(2095) found +[3996] Forked 2096 +[3995] Forked 2097 +(2096) found +(2097) found +[3994] Forked 2098 +[3993] Forked 2099 +(2098) found +(2099) found +[3992] Forked 2100 +[3991] Forked 2101 +(2100) found +(2101) found +[3990] Forked 2102 +[3989] Forked 2103 +(2102) found +(2103) found +[3988] Forked 2104 +[3987] Forked 2105 +(2104) found +(2105) found +[3986] Forked 2106 +[3985] Forked 2109 +(2106) found +(2109) found +[3984] Forked 2110 +[3983] Forked 2111 +(2110) found +(2111) found +[3982] Forked 2112 +[3981] Forked 2113 +(2112) found +(2113) found +[3980] Forked 2114 +[3979] Forked 2115 +(2114) found +(2115) found +[3978] Forked 2116 +[3977] Forked 2117 +(2116) found +(2117) found +[3976] Forked 2118 +[3975] Forked 2119 +(2118) found +(2119) found +[3974] Forked 2120 +[3973] Forked 2121 +(2120) found +(2121) found +[3972] Forked 2122 +[3971] Forked 2123 +(2122) found +(2123) found +[3970] Forked 2124 +[3969] Forked 2125 +(2124) found +(2125) found +[3968] Forked 2126 +[3967] Forked 2127 +(2126) found +(2127) found +[3966] Forked 2128 +[3965] Forked 2129 +(2128) found +(2129) found +[3964] Forked 2130 +[3963] Forked 2131 +(2130) found +(2131) found +[3962] Forked 2132 +[3961] Forked 2133 +(2132) found +(2133) found +[3960] Forked 2134 +[3959] Forked 2135 +(2134) found +(2135) found +[3958] Forked 2136 +[3957] Forked 2137 +(2136) found +(2137) found +[3956] Forked 2138 +[3955] Forked 2139 +(2138) found +(2139) found +[3954] Forked 2140 +[3953] Forked 2141 +(2140) found +(2141) found +[3952] Forked 2142 +[3951] Forked 2143 +(2142) found +(2143) found +[3950] Forked 2144 +[3949] Forked 2145 +(2144) found +(2145) found +[3948] Forked 2146 +[3947] Forked 2147 +(2146) found +(2147) found +[3946] Forked 2148 +[3945] Forked 2149 +(2148) found +(2149) found +[3944] Forked 2150 +[3943] Forked 2151 +(2150) found +(2151) found +[3942] Forked 2152 +[3941] Forked 2153 +(2152) found +(2153) found +[3940] Forked 2154 +[3939] Forked 2155 +(2154) found +(2155) found +[3938] Forked 2156 +[3937] Forked 2157 +(2156) found +(2157) found +[3936] Forked 2158 +[3935] Forked 2159 +(2158) found +(2159) found +[3934] Forked 2160 +[3933] Forked 2161 +(2160) found +(2161) found +[3932] Forked 2162 +[3931] Forked 2163 +(2162) found +(2163) found +[3930] Forked 2164 +[3929] Forked 2165 +(2164) found +(2165) found +[3928] Forked 2166 +[3927] Forked 2167 +(2166) found +(2167) found +[3926] Forked 2168 +[3925] Forked 2169 +(2168) found +(2169) found +[3924] Forked 2170 +[3923] Forked 2171 +(2170) found +(2171) found +[3922] Forked 2172 +[3921] Forked 2173 +(2172) found +(2173) found +[3920] Forked 2174 +[3919] Forked 2175 +(2174) found +(2175) found +[3918] Forked 2176 +[3917] Forked 2177 +(2176) found +(2177) found +[3916] Forked 2178 +[3915] Forked 2179 +(2178) found +(2179) found +[3914] Forked 2180 +[3913] Forked 2181 +(2180) found +(2181) found +[3912] Forked 2182 +[3911] Forked 2183 +(2182) found +(2183) found +[3910] Forked 2184 +[3909] Forked 2185 +(2184) found +(2185) found +[3908] Forked 2186 +[3907] Forked 2187 +(2186) found +(2187) found +[3906] Forked 2188 +[3905] Forked 2189 +(2188) found +(2189) found +[3904] Forked 2190 +[3903] Forked 2191 +(2190) found +(2191) found +[3902] Forked 2192 +[3901] Forked 2193 +(2192) found +(2193) found +[3900] Forked 2194 +[3899] Forked 2195 +(2194) found +(2195) found +[3898] Forked 2196 +[3897] Forked 2197 +(2196) found +(2197) found +[3896] Forked 2198 +[3895] Forked 2199 +(2198) found +(2199) found +[3894] Forked 2200 +[3893] Forked 2201 +(2200) found +(2201) found +[3892] Forked 2202 +(2202) found +[3891] Forked 2203 +[3890] Forked 2204 +(2203) found +(2204) found +[3889] Forked 2205 +[3888] Forked 2206 +(2205) found +(2206) found +[3887] Forked 2207 +[3886] Forked 2208 +(2207) found +(2208) found +[3885] Forked 2209 +[3884] Forked 2210 +(2209) found +(2210) found +[3883] Forked 2211 +[3882] Forked 2212 +(2211) found +(2212) found +[3881] Forked 2213 +[3880] Forked 2214 +(2213) found +(2214) found +[3879] Forked 2215 +[3878] Forked 2216 +(2215) found +(2216) found +[3877] Forked 2217 +[3876] Forked 2218 +(2217) found +(2218) found +[3875] Forked 2219 +[3874] Forked 2220 +(2219) found +(2220) found +[3873] Forked 2221 +[3872] Forked 2222 +(2221) found +(2222) found +[3871] Forked 2223 +[3870] Forked 2224 +(2223) found +(2224) found +[3869] Forked 2225 +[3868] Forked 2226 +(2225) found +(2226) found +[3867] Forked 2227 +[3866] Forked 2228 +(2227) found +(2228) found +[3865] Forked 2229 +[3864] Forked 2230 +(2229) found +(2230) found +[3863] Forked 2231 +[3862] Forked 2232 +(2231) found +(2232) found +[3861] Forked 2233 +[3860] Forked 2234 +(2233) found +(2234) found +[3859] Forked 2235 +[3858] Forked 2236 +(2235) found +(2236) found +[3857] Forked 2237 +[3856] Forked 2238 +(2237) found +(2238) found +[3855] Forked 2239 +[3854] Forked 2240 +(2239) found +(2240) found +[3853] Forked 2241 +[3852] Forked 2242 +(2241) found +(2242) found +[3851] Forked 2243 +[3850] Forked 2244 +(2243) found +(2244) found +[3849] Forked 2245 +[3848] Forked 2246 +(2245) found +(2246) found +[3847] Forked 2247 +[3846] Forked 2248 +(2247) found +(2248) found +[3845] Forked 2249 +[3844] Forked 2250 +(2249) found +(2250) found +[3843] Forked 2251 +[3842] Forked 2252 +(2251) found +(2252) found +[3841] Forked 2253 +[3840] Forked 2254 +(2253) found +(2254) found +[3839] Forked 2255 +[3838] Forked 2256 +(2255) found +(2256) found +[3837] Forked 2257 +[3836] Forked 2258 +(2257) found +(2258) found +[3835] Forked 2259 +[3834] Forked 2260 +(2259) found +(2260) found +[3833] Forked 2261 +[3832] Forked 2265 +(2261) found +(2265) found +[3831] Forked 2266 +[3830] Forked 2267 +(2266) found +(2267) found +[3829] Forked 2268 +[3828] Forked 2269 +(2268) found +(2269) found +[3827] Forked 2270 +[3826] Forked 2271 +(2270) found +(2271) found +[3825] Forked 2272 +[3824] Forked 2273 +(2272) found +(2273) found +[3823] Forked 2274 +[3822] Forked 2275 +(2274) found +(2275) found +[3821] Forked 2276 +[3820] Forked 2277 +(2276) found +(2277) found +[3819] Forked 2278 +[3818] Forked 2279 +(2278) found +(2279) found +[3817] Forked 2280 +[3816] Forked 2281 +(2280) found +(2281) found +[3815] Forked 2282 +[3814] Forked 2283 +(2282) found +(2283) found +[3813] Forked 2284 +[3812] Forked 2285 +(2284) found +(2285) found +[3811] Forked 2286 +[3810] Forked 2287 +(2286) found +(2287) found +[3809] Forked 2288 +[3808] Forked 2289 +(2288) found +(2289) found +[3807] Forked 2290 +[3806] Forked 2291 +(2290) found +(2291) found +[3805] Forked 2292 +[3804] Forked 2293 +(2292) found +(2293) found +[3803] Forked 2294 +[3802] Forked 2295 +(2294) found +(2295) found +[3801] Forked 2296 +(2296) found +[3800] Forked 2297 +(2297) found +[3799] Forked 2298 +(2298) found +[3798] Forked 2299 +(2299) found +[3797] Forked 2300 +(2300) found +[3796] Forked 2301 +(2301) found +[3795] Forked 2302 +(2302) found +[3794] Forked 2303 +(2303) found +[3793] Forked 2304 +(2304) found +[3792] Forked 2305 +(2305) found +[3791] Forked 2306 +(2306) found +[3790] Forked 2307 +(2307) found +[3789] Forked 2308 +(2308) found +[3788] Forked 2309 +(2309) found +[3787] Forked 2310 +(2310) found +[3786] Forked 2311 +(2311) found +[3785] Forked 2312 +(2312) found +[3784] Forked 2313 +(2313) found +[3783] Forked 2314 +(2314) found +[3782] Forked 2315 +(2315) found +[3781] Forked 2316 +(2316) found +[3780] Forked 2317 +(2317) found +[3779] Forked 2318 +(2318) found +[3778] Forked 2319 +(2319) found +[3777] Forked 2320 +(2320) found +[3776] Forked 2321 +(2321) found +[3775] Forked 2322 +(2322) found +[3774] Forked 2323 +(2323) found +[3773] Forked 2324 +(2324) found +[3772] Forked 2325 +(2325) found +[3771] Forked 2326 +(2326) found +[3770] Forked 2327 +(2327) found +[3769] Forked 2328 +(2328) found +[3768] Forked 2329 +(2329) found +[3767] Forked 2330 +[3766] Forked 2331 +(2330) found +(2331) found +[3765] Forked 2332 +[3764] Forked 2333 +(2332) found +(2333) found +[3763] Forked 2334 +[3762] Forked 2335 +(2334) found +(2335) found +[3761] Forked 2336 +[3760] Forked 2337 +(2336) found +(2337) found +[3759] Forked 2338 +[3758] Forked 2339 +(2338) found +(2339) found +[3757] Forked 2340 +[3756] Forked 2341 +(2340) found +(2341) found +[3755] Forked 2342 +[3754] Forked 2343 +(2342) found +(2343) found +[3753] Forked 2344 +[3752] Forked 2345 +(2344) found +(2345) found +[3751] Forked 2346 +[3750] Forked 2347 +(2346) found +(2347) found +[3749] Forked 2348 +[3748] Forked 2349 +(2348) found +(2349) found +[3747] Forked 2350 +[3746] Forked 2351 +(2350) found +(2351) found +[3745] Forked 2352 +[3744] Forked 2353 +(2352) found +(2353) found +[3743] Forked 2354 +[3742] Forked 2355 +(2354) found +(2355) found +[3741] Forked 2356 +[3740] Forked 2357 +(2356) found +(2357) found +[3739] Forked 2358 +[3738] Forked 2359 +(2358) found +(2359) found +[3737] Forked 2360 +[3736] Forked 2361 +(2360) found +(2361) found +[3735] Forked 2362 +[3734] Forked 2363 +(2362) found +(2363) found +[3733] Forked 2364 +[3732] Forked 2365 +(2364) found +(2365) found +[3731] Forked 2366 +[3730] Forked 2367 +(2366) found +(2367) found +[3729] Forked 2368 +[3728] Forked 2369 +(2368) found +(2369) found +[3727] Forked 2370 +[3726] Forked 2371 +(2370) found +(2371) found +[3725] Forked 2372 +[3724] Forked 2373 +(2372) found +(2373) found +[3723] Forked 2374 +[3722] Forked 2375 +(2374) found +(2375) found +[3721] Forked 2376 +(2376) found +[3720] Forked 2377 +(2377) found +[3719] Forked 2378 +(2378) found +[3718] Forked 2379 +(2379) found +[3717] Forked 2380 +(2380) found +[3716] Forked 2381 +(2381) found +[3715] Forked 2382 +(2382) found +[3714] Forked 2383 +(2383) found +[3713] Forked 2384 +(2384) found +[3712] Forked 2385 +(2385) found +[3711] Forked 2386 +(2386) found +[3710] Forked 2387 +(2387) found +[3709] Forked 2388 +(2388) found +[3708] Forked 2389 +(2389) found +[3707] Forked 2390 +(2390) found +[3706] Forked 2391 +(2391) found +[3705] Forked 2392 +(2392) found +[3704] Forked 2393 +(2393) found +[3703] Forked 2394 +(2394) found +[3702] Forked 2395 +(2395) found +[3701] Forked 2396 +(2396) found +[3700] Forked 2397 +(2397) found +[3699] Forked 2398 +(2398) found +[3698] Forked 2399 +(2399) found +[3697] Forked 2400 +(2400) found +[3696] Forked 2401 +(2401) found +[3695] Forked 2402 +(2402) found +[3694] Forked 2404 +(2404) found +[3693] Forked 2405 +(2405) found +[3692] Forked 2406 +(2406) found +[3691] Forked 2407 +(2407) found +[3690] Forked 2408 +(2408) found +[3689] Forked 2409 +(2409) found +[3688] Forked 2410 +(2410) found +[3687] Forked 2411 +[3686] Forked 2412 +(2411) found +(2412) found +[3685] Forked 2413 +[3684] Forked 2414 +(2413) found +(2414) found +[3683] Forked 2415 +[3682] Forked 2416 +(2415) found +(2416) found +[3681] Forked 2417 +[3680] Forked 2418 +(2417) found +(2418) found +[3679] Forked 2419 +[3678] Forked 2420 +(2419) found +(2420) found +[3677] Forked 2421 +[3676] Forked 2422 +(2421) found +(2422) found +[3675] Forked 2423 +[3674] Forked 2424 +(2423) found +(2424) found +[3673] Forked 2425 +[3672] Forked 2426 +(2425) found +(2426) found +[3671] Forked 2427 +[3670] Forked 2428 +(2427) found +(2428) found +[3669] Forked 2429 +[3668] Forked 2430 +(2429) found +(2430) found +[3667] Forked 2431 +[3666] Forked 2432 +(2431) found +(2432) found +[3665] Forked 2433 +[3664] Forked 2434 +(2433) found +(2434) found +[3663] Forked 2435 +[3662] Forked 2436 +(2435) found +(2436) found +[3661] Forked 2437 +[3660] Forked 2438 +(2437) found +(2438) found +[3659] Forked 2439 +[3658] Forked 2440 +(2439) found +(2440) found +[3657] Forked 2441 +[3656] Forked 2442 +(2441) found +(2442) found +[3655] Forked 2443 +[3654] Forked 2444 +(2443) found +(2444) found +[3653] Forked 2445 +[3652] Forked 2446 +(2445) found +(2446) found +[3651] Forked 2447 +[3650] Forked 2448 +(2447) found +(2448) found +[3649] Forked 2449 +[3648] Forked 2450 +(2449) found +(2450) found +[3647] Forked 2451 +[3646] Forked 2452 +(2451) found +(2452) found +[3645] Forked 2453 +[3644] Forked 2454 +(2453) found +(2454) found +[3643] Forked 2455 +[3642] Forked 2456 +(2455) found +(2456) found +[3641] Forked 2457 +(2457) found +[3640] Forked 2458 +(2458) found +[3639] Forked 2459 +(2459) found +[3638] Forked 2460 +(2460) found +[3637] Forked 2461 +(2461) found +[3636] Forked 2462 +(2462) found +[3635] Forked 2463 +(2463) found +[3634] Forked 2464 +(2464) found +[3633] Forked 2465 +(2465) found +[3632] Forked 2466 +(2466) found +[3631] Forked 2467 +(2467) found +[3630] Forked 2468 +(2468) found +[3629] Forked 2469 +(2469) found +[3628] Forked 2470 +(2470) found +[3627] Forked 2471 +(2471) found +[3626] Forked 2472 +(2472) found +[3625] Forked 2473 +(2473) found +[3624] Forked 2474 +(2474) found +[3623] Forked 2475 +(2475) found +[3622] Forked 2476 +(2476) found +[3621] Forked 2477 +(2477) found +[3620] Forked 2478 +(2478) found +[3619] Forked 2479 +(2479) found +[3618] Forked 2480 +(2480) found +[3617] Forked 2481 +(2481) found +[3616] Forked 2482 +(2482) found +[3615] Forked 2483 +(2483) found +[3614] Forked 2484 +(2484) found +[3613] Forked 2485 +(2485) found +[3612] Forked 2486 +(2486) found +[3611] Forked 2487 +(2487) found +[3610] Forked 2488 +(2488) found +[3609] Forked 2489 +(2489) found +[3608] Forked 2490 +(2490) found +[3607] Forked 2491 +[3606] Forked 2492 +(2491) found +(2492) found +[3605] Forked 2493 +[3604] Forked 2494 +(2493) found +(2494) found +[3603] Forked 2495 +[3602] Forked 2496 +(2495) found +(2496) found +[3601] Forked 2497 +[3600] Forked 2498 +(2497) found +(2498) found +[3599] Forked 2499 +[3598] Forked 2500 +(2499) found +(2500) found +[3597] Forked 2501 +[3596] Forked 2502 +(2501) found +(2502) found +[3595] Forked 2503 +[3594] Forked 2504 +(2503) found +(2504) found +[3593] Forked 2505 +[3592] Forked 2506 +(2505) found +(2506) found +[3591] Forked 2507 +[3590] Forked 2508 +(2507) found +(2508) found +[3589] Forked 2509 +[3588] Forked 2510 +(2509) found +(2510) found +[3587] Forked 2512 +[3586] Forked 2513 +(2512) found +(2513) found +[3585] Forked 2514 +[3584] Forked 2515 +(2514) found +(2515) found +[3583] Forked 2516 +[3582] Forked 2517 +(2516) found +(2517) found +[3581] Forked 2518 +[3580] Forked 2519 +(2518) found +(2519) found +[3579] Forked 2520 +[3578] Forked 2521 +(2520) found +(2521) found +[3577] Forked 2522 +[3576] Forked 2523 +(2522) found +(2523) found +[3575] Forked 2525 +[3574] Forked 2526 +(2525) found +(2526) found +[3573] Forked 2527 +[3572] Forked 2528 +(2527) found +(2528) found +[3571] Forked 2529 +[3570] Forked 2530 +(2529) found +(2530) found +[3569] Forked 2531 +[3568] Forked 2532 +(2531) found +(2532) found +[3567] Forked 2533 +[3566] Forked 2534 +(2533) found +(2534) found +[3565] Forked 2535 +[3564] Forked 2536 +(2535) found +(2536) found +[3563] Forked 2537 +[3562] Forked 2538 +(2537) found +(2538) found +[3561] Forked 2539 +[3560] Forked 2541 +(2539) found +(2541) found +[3559] Forked 2542 +[3558] Forked 2543 +(2542) found +(2543) found +[3557] Forked 2544 +[3556] Forked 2545 +(2544) found +(2545) found +[3555] Forked 2546 +[3554] Forked 2547 +(2546) found +(2547) found +[3553] Forked 2548 +[3552] Forked 2549 +(2548) found +(2549) found +[3551] Forked 2550 +[3550] Forked 2551 +(2550) found +(2551) found +[3549] Forked 2552 +[3548] Forked 2553 +(2552) found +(2553) found +[3547] Forked 2554 +[3546] Forked 2555 +(2554) found +(2555) found +[3545] Forked 2556 +[3544] Forked 2557 +(2556) found +(2557) found +[3543] Forked 2558 +[3542] Forked 2559 +(2558) found +(2559) found +[3541] Forked 2560 +[3540] Forked 2561 +(2560) found +(2561) found +[3539] Forked 2562 +[3538] Forked 2563 +(2562) found +(2563) found +[3537] Forked 2564 +[3536] Forked 2565 +(2564) found +(2565) found +[3535] Forked 2566 +[3534] Forked 2567 +(2566) found +(2567) found +[3533] Forked 2568 +[3532] Forked 2569 +(2568) found +(2569) found +[3531] Forked 2570 +[3530] Forked 2571 +(2570) found +(2571) found +[3529] Forked 2572 +[3528] Forked 2573 +(2572) found +(2573) found +[3527] Forked 2574 +[3526] Forked 2575 +(2574) found +(2575) found +[3525] Forked 2576 +[3524] Forked 2577 +(2576) found +(2577) found +[3523] Forked 2578 +[3522] Forked 2579 +(2578) found +(2579) found +[3521] Forked 2580 +[3520] Forked 2581 +(2580) found +(2581) found +[3519] Forked 2582 +(2582) found +[3518] Forked 2583 +(2583) found +[3517] Forked 2584 +(2584) found +[3516] Forked 2585 +(2585) found +[3515] Forked 2586 +(2586) found +[3514] Forked 2587 +(2587) found +[3513] Forked 2588 +(2588) found +[3512] Forked 2589 +(2589) found +[3511] Forked 2590 +(2590) found +[3510] Forked 2591 +(2591) found +[3509] Forked 2592 +(2592) found +[3508] Forked 2593 +(2593) found +[3507] Forked 2594 +(2594) found +[3506] Forked 2595 +(2595) found +[3505] Forked 2596 +(2596) found +[3504] Forked 2597 +(2597) found +[3503] Forked 2598 +(2598) found +[3502] Forked 2599 +(2599) found +[3501] Forked 2600 +(2600) found +[3500] Forked 2601 +(2601) found +[3499] Forked 2602 +(2602) found +[3498] Forked 2603 +(2603) found +[3497] Forked 2604 +(2604) found +[3496] Forked 2605 +(2605) found +[3495] Forked 2606 +(2606) found +[3494] Forked 2607 +(2607) found +[3493] Forked 2608 +(2608) found +[3492] Forked 2609 +(2609) found +[3491] Forked 2610 +(2610) found +[3490] Forked 2611 +(2611) found +[3489] Forked 2612 +(2612) found +[3488] Forked 2613 +(2613) found +[3487] Forked 2614 +(2614) found +[3486] Forked 2615 +(2615) found +[3485] Forked 2616 +(2616) found +[3484] Forked 2617 +(2617) found +[3483] Forked 2618 +[3482] Forked 2619 +(2618) found +(2619) found +[3481] Forked 2620 +[3480] Forked 2621 +(2620) found +(2621) found +[3479] Forked 2622 +(2622) found +[3478] Forked 2623 +[3477] Forked 2624 +(2623) found +(2624) found +[3476] Forked 2625 +[3475] Forked 2626 +(2625) found +(2626) found +[3474] Forked 2627 +[3473] Forked 2628 +(2627) found +(2628) found +[3472] Forked 2629 +[3471] Forked 2630 +(2629) found +(2630) found +[3470] Forked 2631 +[3469] Forked 2632 +(2631) found +(2632) found +[3468] Forked 2633 +[3467] Forked 2634 +(2633) found +(2634) found +[3466] Forked 2635 +[3465] Forked 2636 +(2635) found +(2636) found +[3464] Forked 2637 +[3463] Forked 2638 +(2637) found +(2638) found +[3462] Forked 2639 +[3461] Forked 2640 +(2639) found +(2640) found +[3460] Forked 2641 +[3459] Forked 2642 +(2641) found +(2642) found +[3458] Forked 2643 +[3457] Forked 2644 +(2643) found +(2644) found +[3456] Forked 2645 +[3455] Forked 2646 +(2645) found +(2646) found +[3454] Forked 2647 +[3453] Forked 2648 +(2647) found +(2648) found +[3452] Forked 2649 +[3451] Forked 2650 +(2649) found +(2650) found +[3450] Forked 2651 +[3449] Forked 2652 +(2651) found +(2652) found +[3448] Forked 2653 +[3447] Forked 2654 +(2653) found +(2654) found +[3446] Forked 2655 +[3445] Forked 2659 +(2655) found +(2659) found +[3444] Forked 2662 +[3443] Forked 2663 +(2662) found +(2663) found +[3442] Forked 2664 +[3441] Forked 2665 +(2664) found +(2665) found +[3440] Forked 2666 +(2666) found +[3439] Forked 2668 +(2668) found +[3438] Forked 2669 +(2669) found +[3437] Forked 2670 +(2670) found +[3436] Forked 2671 +(2671) found +[3435] Forked 2672 +(2672) found +[3434] Forked 2673 +(2673) found +[3433] Forked 2674 +(2674) found +[3432] Forked 2675 +(2675) found +[3431] Forked 2676 +(2676) found +[3430] Forked 2677 +(2677) found +[3429] Forked 2678 +(2678) found +[3428] Forked 2679 +(2679) found +[3427] Forked 2680 +(2680) found +[3426] Forked 2681 +(2681) found +[3425] Forked 2682 +(2682) found +[3424] Forked 2683 +(2683) found +[3423] Forked 2684 +(2684) found +[3422] Forked 2685 +(2685) found +[3421] Forked 2686 +(2686) found +[3420] Forked 2687 +(2687) found +[3419] Forked 2688 +(2688) found +[3418] Forked 2689 +(2689) found +[3417] Forked 2690 +(2690) found +[3416] Forked 2691 +(2691) found +[3415] Forked 2692 +(2692) found +[3414] Forked 2693 +(2693) found +[3413] Forked 2694 +(2694) found +[3412] Forked 2695 +(2695) found +[3411] Forked 2696 +(2696) found +[3410] Forked 2697 +(2697) found +[3409] Forked 2698 +(2698) found +[3408] Forked 2699 +(2699) found +[3407] Forked 2700 +(2700) found +[3406] Forked 2701 +(2701) found +[3405] Forked 2703 +(2703) found +[3404] Forked 2704 +[3403] Forked 2705 +(2704) found +(2705) found +[3402] Forked 2706 +(2706) found +[3401] Forked 2707 +(2707) found +[3400] Forked 2708 +(2708) found +[3399] Forked 2709 +(2709) found +[3398] Forked 2710 +[3397] Forked 2711 +(2710) found +(2711) found +[3396] Forked 2712 +[3395] Forked 2713 +(2712) found +(2713) found +[3394] Forked 2714 +[3393] Forked 2715 +(2714) found +(2715) found +[3392] Forked 2716 +[3391] Forked 2717 +(2716) found +(2717) found +[3390] Forked 2718 +[3389] Forked 2719 +(2718) found +(2719) found +[3388] Forked 2720 +[3387] Forked 2723 +(2720) found +(2723) found +[3386] Forked 2725 +[3385] Forked 2728 +(2725) found +(2728) found +[3384] Forked 2729 +[3383] Forked 2730 +(2729) found +(2730) found +[3382] Forked 2731 +[3381] Forked 2732 +(2731) found +(2732) found +[3380] Forked 2733 +[3379] Forked 2734 +(2733) found +(2734) found +[3378] Forked 2735 +[3377] Forked 2736 +(2735) found +(2736) found +[3376] Forked 2737 +[3375] Forked 2738 +(2737) found +(2738) found +[3374] Forked 2739 +[3373] Forked 2740 +(2739) found +(2740) found +[3372] Forked 2741 +[3371] Forked 2742 +(2741) found +(2742) found +[3370] Forked 2743 +[3369] Forked 2745 +(2743) found +(2745) found +[3368] Forked 2746 +(2746) found +[3367] Forked 2747 +(2747) found +[3366] Forked 2748 +(2748) found +[3365] Forked 2749 +(2749) found +[3364] Forked 2750 +(2750) found +[3363] Forked 2751 +(2751) found +[3362] Forked 2752 +(2752) found +[3361] Forked 2753 +(2753) found +[3360] Forked 2754 +(2754) found +[3359] Forked 2755 +(2755) found +[3358] Forked 2756 +(2756) found +[3357] Forked 2757 +(2757) found +[3356] Forked 2758 +(2758) found +[3355] Forked 2760 +(2760) found +[3354] Forked 2761 +(2761) found +[3353] Forked 2762 +(2762) found +[3352] Forked 2763 +(2763) found +[3351] Forked 2764 +(2764) found +[3350] Forked 2765 +(2765) found +[3349] Forked 2766 +(2766) found +[3348] Forked 2767 +(2767) found +[3347] Forked 2768 +(2768) found +[3346] Forked 2769 +(2769) found +[3345] Forked 2770 +(2770) found +[3344] Forked 2771 +(2771) found +[3343] Forked 2772 +(2772) found +[3342] Forked 2773 +(2773) found +[3341] Forked 2774 +(2774) found +[3340] Forked 2775 +(2775) found +[3339] Forked 2776 +(2776) found +[3338] Forked 2777 +(2777) found +[3337] Forked 2778 +(2778) found +[3336] Forked 2779 +(2779) found +[3335] Forked 2780 +(2780) found +[3334] Forked 2781 +(2781) found +[3333] Forked 2782 +(2782) found +[3332] Forked 2783 +(2783) found +[3331] Forked 2784 +(2784) found +[3330] Forked 2785 +(2785) found +[3329] Forked 2786 +(2786) found +[3328] Forked 2787 +(2787) found +[3327] Forked 2788 +(2788) found +[3326] Forked 2789 +(2789) found +[3325] Forked 2790 +(2790) found +[3324] Forked 2791 +(2791) found +[3323] Forked 2792 +(2792) found +[3322] Forked 2793 +(2793) found +[3321] Forked 2794 +[3320] Forked 2795 +(2795) found +(2794) found +[3319] Forked 2796 +(2796) found +[3318] Forked 2797 +(2797) found +[3317] Forked 2798 +(2798) found +[3316] Forked 2799 +(2799) found +[3315] Forked 2800 +(2800) found +[3314] Forked 2801 +(2801) found +[3313] Forked 2802 +(2802) found +[3312] Forked 2803 +(2803) found +[3311] Forked 2804 +(2804) found +[3310] Forked 2805 +(2805) found +[3309] Forked 2806 +(2806) found +[3308] Forked 2807 +(2807) found +[3307] Forked 2808 +(2808) found +[3306] Forked 2809 +(2809) found +[3305] Forked 2810 +(2810) found +[3304] Forked 2811 +(2811) found +[3303] Forked 2812 +(2812) found +[3302] Forked 2813 +(2813) found +[3301] Forked 2814 +(2814) found +[3300] Forked 2815 +(2815) found +[3299] Forked 2816 +(2816) found +[3298] Forked 2817 +(2817) found +[3297] Forked 2818 +(2818) found +[3296] Forked 2819 +(2819) found +[3295] Forked 2820 +(2820) found +[3294] Forked 2821 +(2821) found +[3293] Forked 2822 +(2822) found +[3292] Forked 2823 +(2823) found +[3291] Forked 2824 +(2824) found +[3290] Forked 2825 +(2825) found +[3289] Forked 2826 +(2826) found +[3288] Forked 2827 +(2827) found +[3287] Forked 2830 +(2830) found +[3286] Forked 2831 +(2831) found +[3285] Forked 2832 +(2832) found +[3284] Forked 2833 +(2833) found +[3283] Forked 2834 +(2834) found +[3282] Forked 2835 +(2835) found +[3281] Forked 2836 +(2836) found +[3280] Forked 2837 +(2837) found +[3279] Forked 2838 +(2838) found +[3278] Forked 2839 +(2839) found +[3277] Forked 2840 +(2840) found +[3276] Forked 2841 +(2841) found +[3275] Forked 2843 +(2843) found +[3274] Forked 2844 +(2844) found +[3273] Forked 2845 +(2845) found +[3272] Forked 2846 +(2846) found +[3271] Forked 2847 +(2847) found +[3270] Forked 2848 +(2848) found +[3269] Forked 2849 +(2849) found +[3268] Forked 2850 +(2850) found +[3267] Forked 2851 +(2851) found +[3266] Forked 2852 +(2852) found +[3265] Forked 2853 +(2853) found +[3264] Forked 2854 +(2854) found +[3263] Forked 2855 +(2855) found +[3262] Forked 2856 +(2856) found +[3261] Forked 2857 +(2857) found +[3260] Forked 2858 +(2858) found +[3259] Forked 2859 +(2859) found +[3258] Forked 2860 +(2860) found +[3257] Forked 2861 +(2861) found +[3256] Forked 2862 +(2862) found +[3255] Forked 2863 +(2863) found +[3254] Forked 2864 +(2864) found +[3253] Forked 2865 +(2865) found +[3252] Forked 2866 +(2866) found +[3251] Forked 2867 +(2867) found +[3250] Forked 2868 +[3249] Forked 2869 +(2868) found +(2869) found +[3248] Forked 2870 +[3247] Forked 2871 +(2870) found +(2871) found +[3246] Forked 2872 +[3245] Forked 2873 +(2872) found +(2873) found +[3244] Forked 2874 +[3243] Forked 2875 +(2874) found +(2875) found +[3242] Forked 2876 +[3241] Forked 2877 +(2876) found +(2877) found +[3240] Forked 2878 +[3239] Forked 2879 +(2878) found +(2879) found +[3238] Forked 2880 +[3237] Forked 2881 +(2880) found +(2881) found +[3236] Forked 2882 +[3235] Forked 2883 +(2882) found +(2883) found +[3234] Forked 2884 +[3233] Forked 2885 +(2884) found +(2885) found +[3232] Forked 2886 +[3231] Forked 2887 +(2886) found +(2887) found +[3230] Forked 2888 +[3229] Forked 2889 +(2888) found +(2889) found +[3228] Forked 2890 +[3227] Forked 2891 +(2890) found +(2891) found +[3226] Forked 2892 +[3225] Forked 2893 +(2892) found +(2893) found +[3224] Forked 2894 +[3223] Forked 2895 +(2894) found +(2895) found +[3222] Forked 2896 +[3221] Forked 2897 +(2896) found +(2897) found +[3220] Forked 2898 +[3219] Forked 2899 +(2898) found +(2899) found +[3218] Forked 2900 +[3217] Forked 2901 +(2900) found +(2901) found +[3216] Forked 2902 +[3215] Forked 2903 +(2902) found +(2903) found +[3214] Forked 2904 +[3213] Forked 2905 +(2904) found +(2905) found +[3212] Forked 2906 +[3211] Forked 2908 +(2906) found +(2908) found +[3210] Forked 2909 +(2909) found +[3209] Forked 2910 +(2910) found +[3208] Forked 2911 +(2911) found +[3207] Forked 2912 +(2912) found +[3206] Forked 2913 +(2913) found +[3205] Forked 2914 +(2914) found +[3204] Forked 2915 +(2915) found +[3203] Forked 2916 +(2916) found +[3202] Forked 2917 +(2917) found +[3201] Forked 2918 +(2918) found +[3200] Forked 2919 +(2919) found +[3199] Forked 2920 +(2920) found +[3198] Forked 2921 +(2921) found +[3197] Forked 2922 +(2922) found +[3196] Forked 2923 +(2923) found +[3195] Forked 2924 +(2924) found +[3194] Forked 2925 +(2925) found +[3193] Forked 2926 +(2926) found +[3192] Forked 2927 +(2927) found +[3191] Forked 2928 +(2928) found +[3190] Forked 2929 +(2929) found +[3189] Forked 2930 +(2930) found +[3188] Forked 2932 +(2932) found +[3187] Forked 2933 +(2933) found +[3186] Forked 2934 +(2934) found +[3185] Forked 2935 +(2935) found +[3184] Forked 2936 +(2936) found +[3183] Forked 2937 +(2937) found +[3182] Forked 2938 +(2938) found +[3181] Forked 2939 +(2939) found +[3180] Forked 2940 +(2940) found +[3179] Forked 2941 +(2941) found +[3178] Forked 2942 +(2942) found +[3177] Forked 2943 +(2943) found +[3176] Forked 2944 +(2944) found +[3175] Forked 2945 +(2945) found +[3174] Forked 2946 +[3173] Forked 2947 +(2946) found +(2947) found +[3172] Forked 2948 +[3171] Forked 2949 +(2948) found +(2949) found +[3170] Forked 2950 +[3169] Forked 2951 +(2950) found +(2951) found +[3168] Forked 2952 +[3167] Forked 2953 +(2952) found +(2953) found +[3166] Forked 2956 +[3165] Forked 2957 +(2956) found +(2957) found +[3164] Forked 2958 +[3163] Forked 2959 +(2958) found +(2959) found +[3162] Forked 2960 +[3161] Forked 2961 +(2960) found +(2961) found +[3160] Forked 2962 +[3159] Forked 2963 +(2962) found +(2963) found +[3158] Forked 2964 +[3157] Forked 2965 +(2964) found +(2965) found +[3156] Forked 2966 +[3155] Forked 2967 +(2966) found +(2967) found +[3154] Forked 2968 +[3153] Forked 2969 +(2968) found +(2969) found +[3152] Forked 2970 +[3151] Forked 2971 +(2970) found +(2971) found +[3150] Forked 2972 +[3149] Forked 2973 +(2972) found +(2973) found +[3148] Forked 2974 +[3147] Forked 2975 +(2974) found +(2975) found +[3146] Forked 2976 +[3145] Forked 2977 +(2976) found +(2977) found +[3144] Forked 2978 +[3143] Forked 2979 +(2978) found +(2979) found +[3142] Forked 2980 +[3141] Forked 2981 +(2980) found +(2981) found +[3140] Forked 2983 +[3139] Forked 2984 +(2983) found +(2984) found +[3138] Forked 2987 +[3137] Forked 2992 +(2987) found +(2992) found +[3136] Forked 3049 +[3135] Forked 3050 +(3049) found +(3050) found +[3134] Forked 3051 +[3133] Forked 3052 +(3051) found +(3052) found +[3132] Forked 3053 +[3131] Forked 3054 +(3053) found +(3054) found +[3130] Forked 3055 +[3129] Forked 3056 +(3055) found +(3056) found +[3128] Forked 3057 +[3127] Forked 3058 +(3057) found +(3058) found +[3126] Forked 3059 +(3059) found +[3125] Forked 3060 +(3060) found +[3124] Forked 3061 +(3061) found +[3123] Forked 3062 +(3062) found +[3122] Forked 3063 +(3063) found +[3121] Forked 3064 +(3064) found +[3120] Forked 3065 +(3065) found +[3119] Forked 3066 +(3066) found +[3118] Forked 3067 +(3067) found +[3117] Forked 3068 +(3068) found +[3116] Forked 3069 +(3069) found +[3115] Forked 3070 +(3070) found +[3114] Forked 3071 +(3071) found +[3113] Forked 3072 +(3072) found +[3112] Forked 3073 +(3073) found +[3111] Forked 3074 +(3074) found +[3110] Forked 3075 +(3075) found +[3109] Forked 3076 +(3076) found +[3108] Forked 3077 +(3077) found +[3107] Forked 3078 +(3078) found +[3106] Forked 3079 +(3079) found +[3105] Forked 3080 +(3080) found +[3104] Forked 3081 +(3081) found +[3103] Forked 3082 +(3082) found +[3102] Forked 3083 +(3083) found +[3101] Forked 3085 +(3085) found +[3100] Forked 3086 +(3086) found +[3099] Forked 3087 +(3087) found +[3098] Forked 3088 +(3088) found +[3097] Forked 3089 +(3089) found +[3096] Forked 3090 +(3090) found +[3095] Forked 3091 +(3091) found +[3094] Forked 3093 +(3093) found +[3093] Forked 3094 +(3094) found +[3092] Forked 3095 +(3095) found +[3091] Forked 3096 +[3090] Forked 3097 +(3096) found +(3097) found +[3089] Forked 3098 +[3088] Forked 3099 +(3098) found +(3099) found +[3087] Forked 3101 +[3086] Forked 3102 +(3101) found +(3102) found +[3085] Forked 3103 +[3084] Forked 3104 +(3103) found +(3104) found +[3083] Forked 3105 +[3082] Forked 3106 +(3105) found +(3106) found +[3081] Forked 3107 +[3080] Forked 3108 +(3107) found +(3108) found +[3079] Forked 3109 +[3078] Forked 3110 +(3109) found +(3110) found +[3077] Forked 3112 +[3076] Forked 3113 +(3112) found +(3113) found +[3075] Forked 3114 +[3074] Forked 3115 +(3114) found +(3115) found +[3073] Forked 3116 +[3072] Forked 3117 +(3116) found +(3117) found +[3071] Forked 3118 +[3070] Forked 3119 +(3118) found +(3119) found +[3069] Forked 3120 +[3068] Forked 3121 +(3120) found +(3121) found +[3067] Forked 3123 +[3066] Forked 3124 +(3123) found +(3124) found +[3065] Forked 3126 +[3064] Forked 3128 +(3126) found +(3128) found +[3063] Forked 3129 +[3062] Forked 3130 +(3129) found +(3130) found +[3061] Forked 3131 +[3060] Forked 3132 +(3131) found +(3132) found +[3059] Forked 3133 +[3058] Forked 3134 +(3133) found +(3134) found +[3057] Forked 3135 +[3056] Forked 3136 +(3135) found +(3136) found +[3055] Forked 3137 +[3054] Forked 3138 +(3137) found +(3138) found +[3053] Forked 3139 +[3052] Forked 3140 +(3139) found +(3140) found +[3051] Forked 3141 +[3050] Forked 3142 +(3141) found +(3142) found +[3049] Forked 3143 +[3048] Forked 3144 +(3143) found +(3144) found +[3047] Forked 3145 +[3046] Forked 3147 +(3145) found +(3147) found +[3045] Forked 3148 +[3044] Forked 3149 +(3148) found +(3149) found +[3043] Forked 3150 +(3150) found +[3042] Forked 3151 +(3151) found +[3041] Forked 3152 +(3152) found +[3040] Forked 3153 +(3153) found +[3039] Forked 3154 +(3154) found +[3038] Forked 3155 +(3155) found +[3037] Forked 3156 +(3156) found +[3036] Forked 3157 +(3157) found +[3035] Forked 3158 +(3158) found +[3034] Forked 3159 +(3159) found +[3033] Forked 3160 +(3160) found +[3032] Forked 3163 +(3163) found +[3031] Forked 3164 +(3164) found +[3030] Forked 3165 +(3165) found +[3029] Forked 3166 +(3166) found +[3028] Forked 3167 +(3167) found +[3027] Forked 3168 +(3168) found +[3026] Forked 3169 +(3169) found +[3025] Forked 3170 +(3170) found +[3024] Forked 3171 +(3171) found +[3023] Forked 3172 +(3172) found +[3022] Forked 3173 +(3173) found +[3021] Forked 3174 +(3174) found +[3020] Forked 3175 +(3175) found +[3019] Forked 3176 +(3176) found +[3018] Forked 3177 +(3177) found +[3017] Forked 3178 +(3178) found +[3016] Forked 3179 +(3179) found +[3015] Forked 3180 +(3180) found +[3014] Forked 3181 +(3181) found +[3013] Forked 3182 +(3182) found +[3012] Forked 3183 +(3183) found +[3011] Forked 3184 +(3184) found +[3010] Forked 3185 +(3185) found +[3009] Forked 3186 +(3186) found +[3008] Forked 3187 +[3007] Forked 3188 +(3187) found +(3188) found +[3006] Forked 3189 +[3005] Forked 3190 +(3189) found +(3190) found +[3004] Forked 3191 +[3003] Forked 3192 +(3191) found +(3192) found +[3002] Forked 3195 +[3001] Forked 3196 +(3195) found +(3196) found +[3000] Forked 3197 +[2999] Forked 3198 +(3197) found +(3198) found +[2998] Forked 3199 +[2997] Forked 3200 +(3199) found +(3200) found +[2996] Forked 3201 +[2995] Forked 3202 +(3201) found +(3202) found +[2994] Forked 3203 +[2993] Forked 3204 +(3203) found +(3204) found +[2992] Forked 3205 +[2991] Forked 3206 +(3205) found +(3206) found +[2990] Forked 3207 +[2989] Forked 3208 +(3207) found +(3208) found +[2988] Forked 3209 +[2987] Forked 3210 +(3209) found +(3210) found +[2986] Forked 3211 +[2985] Forked 3212 +(3211) found +(3212) found +[2984] Forked 3213 +[2983] Forked 3214 +(3213) found +(3214) found +[2982] Forked 3215 +[2981] Forked 3216 +(3215) found +(3216) found +[2980] Forked 3217 +[2979] Forked 3218 +(3217) found +(3218) found +[2978] Forked 3219 +[2977] Forked 3220 +(3219) found +(3220) found +[2976] Forked 3221 +[2975] Forked 3222 +(3221) found +(3222) found +[2974] Forked 3223 +[2973] Forked 3224 +(3223) found +(3224) found +[2972] Forked 3225 +[2971] Forked 3227 +(3225) found +(3227) found +[2970] Forked 3228 +[2969] Forked 3229 +(3228) found +(3229) found +[2968] Forked 3230 +[2967] Forked 3231 +(3230) found +(3231) found +[2966] Forked 3232 +[2965] Forked 3233 +(3232) found +(3233) found +[2964] Forked 3234 +[2963] Forked 3235 +(3234) found +(3235) found +[2962] Forked 3236 +(3236) found +[2961] Forked 3237 +(3237) found +[2960] Forked 3238 +(3238) found +[2959] Forked 3239 +(3239) found +[2958] Forked 3240 +(3240) found +[2957] Forked 3241 +(3241) found +[2956] Forked 3242 +(3242) found +[2955] Forked 3243 +(3243) found +[2954] Forked 3244 +(3244) found +[2953] Forked 3245 +(3245) found +[2952] Forked 3246 +(3246) found +[2951] Forked 3247 +(3247) found +[2950] Forked 3249 +(3249) found +[2949] Forked 3250 +(3250) found +[2948] Forked 3251 +(3251) found +[2947] Forked 3252 +(3252) found +[2946] Forked 3253 +(3253) found +[2945] Forked 3254 +(3254) found +[2944] Forked 3255 +(3255) found +[2943] Forked 3256 +(3256) found +[2942] Forked 3257 +(3257) found +[2941] Forked 3258 +(3258) found +[2940] Forked 3259 +(3259) found +[2939] Forked 3260 +(3260) found +[2938] Forked 3261 +(3261) found +[2937] Forked 3262 +(3262) found +[2936] Forked 3263 +(3263) found +[2935] Forked 3264 +(3264) found +[2934] Forked 3265 +(3265) found +[2933] Forked 3266 +(3266) found +[2932] Forked 3267 +(3267) found +[2931] Forked 3268 +(3268) found +[2930] Forked 3269 +(3269) found +[2929] Forked 3270 +(3270) found +[2928] Forked 3271 +[2927] Forked 3272 +(3271) found +(3272) found +[2926] Forked 3273 +[2925] Forked 3274 +(3273) found +(3274) found +[2924] Forked 3275 +[2923] Forked 3276 +(3275) found +(3276) found +[2922] Forked 3277 +[2921] Forked 3278 +(3277) found +(3278) found +[2920] Forked 3279 +[2919] Forked 3280 +(3279) found +(3280) found +[2918] Forked 3281 +[2917] Forked 3282 +(3281) found +(3282) found +[2916] Forked 3283 +[2915] Forked 3284 +(3283) found +(3284) found +[2914] Forked 3285 +[2913] Forked 3286 +(3285) found +(3286) found +[2912] Forked 3287 +[2911] Forked 3288 +(3287) found +(3288) found +[2910] Forked 3289 +[2909] Forked 3290 +(3289) found +(3290) found +[2908] Forked 3291 +[2907] Forked 3292 +(3291) found +(3292) found +[2906] Forked 3293 +[2905] Forked 3294 +(3293) found +(3294) found +[2904] Forked 3295 +[2903] Forked 3296 +(3295) found +(3296) found +[2902] Forked 3297 +[2901] Forked 3298 +(3297) found +(3298) found +[2900] Forked 3299 +[2899] Forked 3300 +(3299) found +(3300) found +[2898] Forked 3301 +[2897] Forked 3302 +(3301) found +(3302) found +[2896] Forked 3303 +[2895] Forked 3304 +(3303) found +(3304) found +[2894] Forked 3305 +[2893] Forked 3306 +(3305) found +(3306) found +[2892] Forked 3307 +[2891] Forked 3308 +(3307) found +(3308) found +[2890] Forked 3309 +[2889] Forked 3310 +(3309) found +(3310) found +[2888] Forked 3311 +[2887] Forked 3312 +(3311) found +(3312) found +[2886] Forked 3313 +[2885] Forked 3314 +(3313) found +(3314) found +[2884] Forked 3315 +[2883] Forked 3317 +(3315) found +(3317) found +[2882] Forked 3318 +[2881] Forked 3319 +(3318) found +(3319) found +[2880] Forked 3320 +[2879] Forked 3321 +(3320) found +(3321) found +[2878] Forked 3322 +[2877] Forked 3323 +(3322) found +(3323) found +[2876] Forked 3324 +[2875] Forked 3325 +(3324) found +(3325) found +[2874] Forked 3326 +[2873] Forked 3327 +(3326) found +(3327) found +[2872] Forked 3333 +[2871] Forked 3334 +(3333) found +(3334) found +[2870] Forked 3335 +[2869] Forked 3336 +(3335) found +(3336) found +[2868] Forked 3337 +[2867] Forked 3338 +(3337) found +(3338) found +[2866] Forked 3339 +[2865] Forked 3340 +(3339) found +(3340) found +[2864] Forked 3341 +[2863] Forked 3342 +(3341) found +(3342) found +[2862] Forked 3343 +[2861] Forked 3344 +(3343) found +(3344) found +[2860] Forked 3345 +[2859] Forked 3347 +(3345) found +(3347) found +[2858] Forked 3348 +[2857] Forked 3349 +(3348) found +(3349) found +[2856] Forked 3350 +[2855] Forked 3351 +(3350) found +(3351) found +[2854] Forked 3352 +[2853] Forked 3353 +(3352) found +(3353) found +[2852] Forked 3354 +[2851] Forked 3355 +(3354) found +(3355) found +[2850] Forked 3356 +[2849] Forked 3357 +(3356) found +(3357) found +[2848] Forked 3358 +[2847] Forked 3359 +(3358) found +(3359) found +[2846] Forked 3360 +[2845] Forked 3361 +(3360) found +(3361) found +[2844] Forked 3362 +[2843] Forked 3363 +(3362) found +(3363) found +[2842] Forked 3364 +[2841] Forked 3366 +(3364) found +(3366) found +[2840] Forked 3367 +(3367) found +[2839] Forked 3368 +(3368) found +[2838] Forked 3369 +(3369) found +[2837] Forked 3370 +(3370) found +[2836] Forked 3371 +(3371) found +[2835] Forked 3372 +(3372) found +[2834] Forked 3373 +(3373) found +[2833] Forked 3382 +(3382) found +[2832] Forked 3383 +(3383) found +[2831] Forked 3384 +(3384) found +[2830] Forked 3385 +(3385) found +[2829] Forked 3386 +(3386) found +[2828] Forked 3387 +(3387) found +[2827] Forked 3388 +(3388) found +[2826] Forked 3389 +(3389) found +[2825] Forked 3390 +(3390) found +[2824] Forked 3391 +(3391) found +[2823] Forked 3392 +(3392) found +[2822] Forked 3393 +(3393) found +[2821] Forked 3394 +(3394) found +[2820] Forked 3395 +(3395) found +[2819] Forked 3396 +(3396) found +[2818] Forked 3397 +(3397) found +[2817] Forked 3398 +(3398) found +[2816] Forked 3399 +(3399) found +[2815] Forked 3401 +(3401) found +[2814] Forked 3402 +(3402) found +[2813] Forked 3403 +(3403) found +[2812] Forked 3404 +(3404) found +[2811] Forked 3405 +(3405) found +[2810] Forked 3406 +(3406) found +[2809] Forked 3407 +(3407) found +[2808] Forked 3408 +(3408) found +[2807] Forked 3409 +(3409) found +[2806] Forked 3410 +(3410) found +[2805] Forked 3411 +(3411) found +[2804] Forked 3412 +(3412) found +[2803] Forked 3413 +(3413) found +[2802] Forked 3414 +(3414) found +[2801] Forked 3415 +[2800] Forked 3416 +(3415) found +(3416) found +[2799] Forked 3417 +[2798] Forked 3418 +(3417) found +(3418) found +[2797] Forked 3419 +[2796] Forked 3420 +(3419) found +(3420) found +[2795] Forked 3421 +[2794] Forked 3422 +(3421) found +(3422) found +[2793] Forked 3423 +[2792] Forked 3424 +(3423) found +(3424) found +[2791] Forked 3425 +[2790] Forked 3426 +(3425) found +(3426) found +[2789] Forked 3427 +[2788] Forked 3428 +(3427) found +(3428) found +[2787] Forked 3429 +[2786] Forked 3430 +(3429) found +(3430) found +[2785] Forked 3431 +[2784] Forked 3432 +(3431) found +(3432) found +[2783] Forked 3433 +[2782] Forked 3434 +(3433) found +(3434) found +[2781] Forked 3435 +[2780] Forked 3436 +(3435) found +(3436) found +[2779] Forked 3437 +[2778] Forked 3438 +(3437) found +(3438) found +[2777] Forked 3439 +[2776] Forked 3440 +(3439) found +(3440) found +[2775] Forked 3441 +[2774] Forked 3442 +(3441) found +(3442) found +[2773] Forked 3443 +[2772] Forked 3444 +(3443) found +(3444) found +[2771] Forked 3445 +[2770] Forked 3446 +(3445) found +(3446) found +[2769] Forked 3447 +[2768] Forked 3448 +(3447) found +(3448) found +[2767] Forked 3449 +[2766] Forked 3450 +(3449) found +(3450) found +[2765] Forked 3451 +[2764] Forked 3452 +(3451) found +(3452) found +[2763] Forked 3453 +[2762] Forked 3454 +(3453) found +(3454) found +[2761] Forked 3455 +[2760] Forked 3456 +(3455) found +(3456) found +[2759] Forked 3457 +[2758] Forked 3458 +(3457) found +(3458) found +[2757] Forked 3459 +(3459) found +[2756] Forked 3460 +(3460) found +[2755] Forked 3461 +(3461) found +[2754] Forked 3462 +(3462) found +[2753] Forked 3463 +(3463) found +[2752] Forked 3464 +(3464) found +[2751] Forked 3465 +(3465) found +[2750] Forked 3466 +(3466) found +[2749] Forked 3467 +(3467) found +[2748] Forked 3468 +(3468) found +[2747] Forked 3469 +(3469) found +[2746] Forked 3470 +(3470) found +[2745] Forked 3471 +(3471) found +[2744] Forked 3472 +(3472) found +[2743] Forked 3473 +(3473) found +[2742] Forked 3474 +(3474) found +[2741] Forked 3475 +(3475) found +[2740] Forked 3476 +(3476) found +[2739] Forked 3477 +(3477) found +[2738] Forked 3478 +(3478) found +[2737] Forked 3479 +(3479) found +[2736] Forked 3480 +(3480) found +[2735] Forked 3481 +(3481) found +[2734] Forked 3482 +(3482) found +[2733] Forked 3483 +(3483) found +[2732] Forked 3484 +(3484) found +[2731] Forked 3485 +(3485) found +[2730] Forked 3486 +(3486) found +[2729] Forked 3487 +(3487) found +[2728] Forked 3488 +(3488) found +[2727] Forked 3489 +(3489) found +[2726] Forked 3490 +(3490) found +[2725] Forked 3491 +(3491) found +[2724] Forked 3492 +(3492) found +[2723] Forked 3493 +(3493) found +[2722] Forked 3494 +(3494) found +[2721] Forked 3495 +(3495) found +[2720] Forked 3496 +[2719] Forked 3497 +(3496) found +(3497) found +[2718] Forked 3498 +[2717] Forked 3499 +(3498) found +(3499) found +[2716] Forked 3500 +[2715] Forked 3501 +(3500) found +(3501) found +[2714] Forked 3502 +[2713] Forked 3503 +(3502) found +(3503) found +[2712] Forked 3504 +[2711] Forked 3505 +(3504) found +(3505) found +[2710] Forked 3506 +[2709] Forked 3507 +(3506) found +(3507) found +[2708] Forked 3508 +[2707] Forked 3509 +(3508) found +(3509) found +[2706] Forked 3510 +[2705] Forked 3511 +(3510) found +(3511) found +[2704] Forked 3512 +[2703] Forked 3513 +(3512) found +(3513) found +[2702] Forked 3514 +[2701] Forked 3515 +(3514) found +(3515) found +[2700] Forked 3516 +[2699] Forked 3517 +(3516) found +(3517) found +[2698] Forked 3518 +[2697] Forked 3519 +(3518) found +(3519) found +[2696] Forked 3520 +[2695] Forked 3521 +(3520) found +(3521) found +[2694] Forked 3522 +[2693] Forked 3523 +(3522) found +(3523) found +[2692] Forked 3524 +[2691] Forked 3525 +(3524) found +(3525) found +[2690] Forked 3526 +[2689] Forked 3527 +(3526) found +(3527) found +[2688] Forked 3528 +[2687] Forked 3529 +(3528) found +(3529) found +[2686] Forked 3530 +[2685] Forked 3531 +(3530) found +(3531) found +[2684] Forked 3532 +[2683] Forked 3533 +(3532) found +(3533) found +[2682] Forked 3534 +[2681] Forked 3535 +(3534) found +(3535) found +[2680] Forked 3536 +[2679] Forked 3537 +(3536) found +(3537) found +[2678] Forked 3538 +[2677] Forked 3539 +(3538) found +(3539) found +[2676] Forked 3540 +(3540) found +[2675] Forked 3541 +(3541) found +[2674] Forked 3542 +(3542) found +[2673] Forked 3543 +(3543) found +[2672] Forked 3544 +(3544) found +[2671] Forked 3545 +(3545) found +[2670] Forked 3546 +(3546) found +[2669] Forked 3547 +(3547) found +[2668] Forked 3548 +(3548) found +[2667] Forked 3549 +(3549) found +[2666] Forked 3550 +(3550) found +[2665] Forked 3551 +(3551) found +[2664] Forked 3552 +(3552) found +[2663] Forked 3553 +(3553) found +[2662] Forked 3554 +(3554) found +[2661] Forked 3555 +(3555) found +[2660] Forked 3556 +(3556) found +[2659] Forked 3557 +(3557) found +[2658] Forked 3558 +(3558) found +[2657] Forked 3559 +(3559) found +[2656] Forked 3560 +(3560) found +[2655] Forked 3561 +(3561) found +[2654] Forked 3562 +(3562) found +[2653] Forked 3563 +(3563) found +[2652] Forked 3564 +(3564) found +[2651] Forked 3565 +(3565) found +[2650] Forked 3566 +(3566) found +[2649] Forked 3567 +(3567) found +[2648] Forked 3568 +(3568) found +[2647] Forked 3569 +(3569) found +[2646] Forked 3570 +(3570) found +[2645] Forked 3571 +(3571) found +[2644] Forked 3572 +(3572) found +[2643] Forked 3573 +(3573) found +[2642] Forked 3574 +(3574) found +[2641] Forked 3575 +(3575) found +[2640] Forked 3576 +(3576) found +[2639] Forked 3577 +[2638] Forked 3578 +(3577) found +(3578) found +[2637] Forked 3579 +[2636] Forked 3580 +(3579) found +(3580) found +[2635] Forked 3581 +[2634] Forked 3582 +(3581) found +(3582) found +[2633] Forked 3583 +[2632] Forked 3584 +(3583) found +(3584) found +[2631] Forked 3585 +[2630] Forked 3586 +(3585) found +(3586) found +[2629] Forked 3587 +[2628] Forked 3588 +(3587) found +(3588) found +[2627] Forked 3589 +[2626] Forked 3590 +(3589) found +(3590) found +[2625] Forked 3591 +[2624] Forked 3592 +(3591) found +(3592) found +[2623] Forked 3593 +[2622] Forked 3594 +(3593) found +(3594) found +[2621] Forked 3595 +[2620] Forked 3596 +(3595) found +(3596) found +[2619] Forked 3597 +[2618] Forked 3598 +(3597) found +(3598) found +[2617] Forked 3599 +[2616] Forked 3600 +(3599) found +(3600) found +[2615] Forked 3601 +[2614] Forked 3602 +(3601) found +(3602) found +[2613] Forked 3603 +[2612] Forked 3604 +(3603) found +(3604) found +[2611] Forked 3605 +[2610] Forked 3606 +(3605) found +(3606) found +[2609] Forked 3607 +[2608] Forked 3608 +(3607) found +(3608) found +[2607] Forked 3609 +[2606] Forked 3610 +(3609) found +(3610) found +[2605] Forked 3611 +[2604] Forked 3612 +(3611) found +(3612) found +[2603] Forked 3613 +[2602] Forked 3614 +(3613) found +(3614) found +[2601] Forked 3615 +[2600] Forked 3616 +(3615) found +(3616) found +[2599] Forked 3617 +[2598] Forked 3618 +(3617) found +(3618) found +[2597] Forked 3619 +[2596] Forked 3620 +(3619) found +(3620) found +[2595] Forked 3621 +(3621) found +[2594] Forked 3622 +(3622) found +[2593] Forked 3623 +(3623) found +[2592] Forked 3624 +(3624) found +[2591] Forked 3625 +(3625) found +[2590] Forked 3626 +(3626) found +[2589] Forked 3627 +(3627) found +[2588] Forked 3628 +(3628) found +[2587] Forked 3629 +(3629) found +[2586] Forked 3630 +(3630) found +[2585] Forked 3631 +(3631) found +[2584] Forked 3632 +(3632) found +[2583] Forked 3633 +(3633) found +[2582] Forked 3634 +(3634) found +[2581] Forked 3635 +(3635) found +[2580] Forked 3636 +(3636) found +[2579] Forked 3637 +(3637) found +[2578] Forked 3638 +(3638) found +[2577] Forked 3639 +(3639) found +[2576] Forked 3640 +(3640) found +[2575] Forked 3641 +(3641) found +[2574] Forked 3642 +(3642) found +[2573] Forked 3643 +(3643) found +[2572] Forked 3644 +(3644) found +[2571] Forked 3645 +(3645) found +[2570] Forked 3646 +(3646) found +[2569] Forked 3647 +(3647) found +[2568] Forked 3648 +(3648) found +[2567] Forked 3649 +(3649) found +[2566] Forked 3650 +(3650) found +[2565] Forked 3651 +(3651) found +[2564] Forked 3652 +(3652) found +[2563] Forked 3653 +(3653) found +[2562] Forked 3654 +(3654) found +[2561] Forked 3655 +(3655) found +[2560] Forked 3656 +(3656) found +[2559] Forked 3658 +(3658) found +[2558] Forked 3659 +[2557] Forked 3660 +(3659) found +(3660) found +[2556] Forked 3661 +[2555] Forked 3662 +(3661) found +(3662) found +[2554] Forked 3663 +[2553] Forked 3664 +(3663) found +(3664) found +[2552] Forked 3665 +[2551] Forked 3666 +(3665) found +(3666) found +[2550] Forked 3667 +[2549] Forked 3669 +(3667) found +(3669) found +[2548] Forked 3670 +[2547] Forked 3671 +(3670) found +(3671) found +[2546] Forked 3672 +[2545] Forked 3673 +(3672) found +(3673) found +[2544] Forked 3674 +[2543] Forked 3675 +(3674) found +(3675) found +[2542] Forked 3676 +[2541] Forked 3677 +(3676) found +(3677) found +[2540] Forked 3678 +[2539] Forked 3679 +(3678) found +(3679) found +[2538] Forked 3680 +[2537] Forked 3681 +(3680) found +(3681) found +[2536] Forked 3682 +[2535] Forked 3683 +(3682) found +(3683) found +[2534] Forked 3684 +[2533] Forked 3685 +(3684) found +(3685) found +[2532] Forked 3686 +[2531] Forked 3687 +(3686) found +(3687) found +[2530] Forked 3688 +[2529] Forked 3689 +(3688) found +(3689) found +[2528] Forked 3690 +[2527] Forked 3691 +(3690) found +(3691) found +[2526] Forked 3692 +[2525] Forked 3693 +(3692) found +(3693) found +[2524] Forked 3694 +[2523] Forked 3695 +(3694) found +(3695) found +[2522] Forked 3696 +[2521] Forked 3697 +(3696) found +(3697) found +[2520] Forked 3698 +[2519] Forked 3700 +(3698) found +(3700) found +[2518] Forked 3701 +(3701) found +[2517] Forked 3702 +(3702) found +[2516] Forked 3703 +(3703) found +[2515] Forked 3704 +(3704) found +[2514] Forked 3705 +(3705) found +[2513] Forked 3706 +(3706) found +[2512] Forked 3707 +(3707) found +[2511] Forked 3708 +(3708) found +[2510] Forked 3709 +(3709) found +[2509] Forked 3710 +(3710) found +[2508] Forked 3711 +(3711) found +[2507] Forked 3712 +(3712) found +[2506] Forked 3713 +(3713) found +[2505] Forked 3714 +(3714) found +[2504] Forked 3715 +(3715) found +[2503] Forked 3716 +(3716) found +[2502] Forked 3717 +(3717) found +[2501] Forked 3718 +(3718) found +[2500] Forked 3719 +(3719) found +[2499] Forked 3720 +(3720) found +[2498] Forked 3721 +(3721) found +[2497] Forked 3722 +(3722) found +[2496] Forked 3723 +(3723) found +[2495] Forked 3724 +(3724) found +[2494] Forked 3725 +(3725) found +[2493] Forked 3726 +(3726) found +[2492] Forked 3727 +(3727) found +[2491] Forked 3728 +(3728) found +[2490] Forked 3729 +(3729) found +[2489] Forked 3730 +(3730) found +[2488] Forked 3731 +(3731) found +[2487] Forked 3732 +(3732) found +[2486] Forked 3733 +(3733) found +[2485] Forked 3734 +(3734) found +[2484] Forked 3735 +(3735) found +[2483] Forked 3736 +(3736) found +[2482] Forked 3737 +(3737) found +[2481] Forked 3738 +(3738) found +[2480] Forked 3739 +(3739) found +[2479] Forked 3740 +[2478] Forked 3741 +(3740) found +(3741) found +[2477] Forked 3742 +[2476] Forked 3743 +(3742) found +(3743) found +[2475] Forked 3744 +[2474] Forked 3745 +(3744) found +(3745) found +[2473] Forked 3746 +[2472] Forked 3747 +(3746) found +(3747) found +[2471] Forked 3748 +[2470] Forked 3749 +(3748) found +(3749) found +[2469] Forked 3750 +[2468] Forked 3751 +(3750) found +(3751) found +[2467] Forked 3752 +[2466] Forked 3753 +(3752) found +(3753) found +[2465] Forked 3754 +[2464] Forked 3755 +(3754) found +(3755) found +[2463] Forked 3756 +[2462] Forked 3757 +(3756) found +(3757) found +[2461] Forked 3758 +[2460] Forked 3759 +(3758) found +(3759) found +[2459] Forked 3760 +[2458] Forked 3761 +(3760) found +(3761) found +[2457] Forked 3762 +[2456] Forked 3763 +(3762) found +(3763) found +[2455] Forked 3764 +[2454] Forked 3765 +(3764) found +(3765) found +[2453] Forked 3766 +[2452] Forked 3767 +(3766) found +(3767) found +[2451] Forked 3768 +[2450] Forked 3769 +(3768) found +(3769) found +[2449] Forked 3770 +[2448] Forked 3771 +(3770) found +(3771) found +[2447] Forked 3772 +[2446] Forked 3773 +(3772) found +(3773) found +[2445] Forked 3774 +[2444] Forked 3775 +(3774) found +(3775) found +[2443] Forked 3776 +[2442] Forked 3778 +(3776) found +(3778) found +[2441] Forked 3779 +(3779) found +[2440] Forked 3780 +(3780) found +[2439] Forked 3781 +(3781) found +[2438] Forked 3782 +(3782) found +[2437] Forked 3783 +(3783) found +[2436] Forked 3784 +(3784) found +[2435] Forked 3785 +(3785) found +[2434] Forked 3786 +(3786) found +[2433] Forked 3787 +(3787) found +[2432] Forked 3788 +(3788) found +[2431] Forked 3789 +(3789) found +[2430] Forked 3790 +(3790) found +[2429] Forked 3791 +(3791) found +[2428] Forked 3792 +(3792) found +[2427] Forked 3793 +(3793) found +[2426] Forked 3794 +(3794) found +[2425] Forked 3795 +(3795) found +[2424] Forked 3796 +(3796) found +[2423] Forked 3797 +(3797) found +[2422] Forked 3798 +(3798) found +[2421] Forked 3799 +(3799) found +[2420] Forked 3800 +(3800) found +[2419] Forked 3801 +(3801) found +[2418] Forked 3802 +(3802) found +[2417] Forked 3803 +(3803) found +[2416] Forked 3804 +(3804) found +[2415] Forked 3805 +(3805) found +[2414] Forked 3806 +(3806) found +[2413] Forked 3807 +(3807) found +[2412] Forked 3808 +(3808) found +[2411] Forked 3809 +(3809) found +[2410] Forked 3810 +(3810) found +[2409] Forked 3811 +(3811) found +[2408] Forked 3812 +(3812) found +[2407] Forked 3813 +(3813) found +[2406] Forked 3814 +(3814) found +[2405] Forked 3815 +(3815) found +[2404] Forked 3816 +(3816) found +[2403] Forked 3817 +[2402] Forked 3818 +(3817) found +(3818) found +[2401] Forked 3819 +[2400] Forked 3820 +(3819) found +(3820) found +[2399] Forked 3821 +[2398] Forked 3822 +(3821) found +(3822) found +[2397] Forked 3823 +[2396] Forked 3824 +(3823) found +(3824) found +[2395] Forked 3825 +[2394] Forked 3826 +(3825) found +(3826) found +[2393] Forked 3827 +[2392] Forked 3828 +(3827) found +(3828) found +[2391] Forked 3829 +[2390] Forked 3830 +(3829) found +(3830) found +[2389] Forked 3831 +[2388] Forked 3832 +(3831) found +(3832) found +[2387] Forked 3833 +[2386] Forked 3834 +(3833) found +(3834) found +[2385] Forked 3835 +[2384] Forked 3836 +(3835) found +(3836) found +[2383] Forked 3837 +[2382] Forked 3838 +(3837) found +(3838) found +[2381] Forked 3839 +[2380] Forked 3840 +(3839) found +(3840) found +[2379] Forked 3841 +[2378] Forked 3842 +(3841) found +(3842) found +[2377] Forked 3843 +[2376] Forked 3844 +(3843) found +(3844) found +[2375] Forked 3845 +[2374] Forked 3846 +(3845) found +(3846) found +[2373] Forked 3847 +[2372] Forked 3848 +(3847) found +(3848) found +[2371] Forked 3849 +[2370] Forked 3850 +(3849) found +(3850) found +[2369] Forked 3851 +[2368] Forked 3852 +(3851) found +(3852) found +[2367] Forked 3853 +[2366] Forked 3854 +(3853) found +(3854) found +[2365] Forked 3855 +[2364] Forked 3856 +(3855) found +(3856) found +[2363] Forked 3857 +[2362] Forked 3858 +(3857) found +(3858) found +[2361] Forked 3859 +[2360] Forked 3860 +(3859) found +(3860) found +[2359] Forked 3861 +(3861) found +[2358] Forked 3862 +(3862) found +[2357] Forked 3863 +(3863) found +[2356] Forked 3864 +(3864) found +[2355] Forked 3865 +(3865) found +[2354] Forked 3866 +(3866) found +[2353] Forked 3867 +(3867) found +[2352] Forked 3868 +(3868) found +[2351] Forked 3869 +(3869) found +[2350] Forked 3870 +(3870) found +[2349] Forked 3871 +(3871) found +[2348] Forked 3872 +(3872) found +[2347] Forked 3873 +(3873) found +[2346] Forked 3874 +(3874) found +[2345] Forked 3875 +(3875) found +[2344] Forked 3876 +(3876) found +[2343] Forked 3877 +(3877) found +[2342] Forked 3878 +(3878) found +[2341] Forked 3879 +(3879) found +[2340] Forked 3880 +(3880) found +[2339] Forked 3881 +(3881) found +[2338] Forked 3882 +(3882) found +[2337] Forked 3883 +(3883) found +[2336] Forked 3884 +(3884) found +[2335] Forked 3885 +(3885) found +[2334] Forked 3886 +(3886) found +[2333] Forked 3887 +(3887) found +[2332] Forked 3888 +(3888) found +[2331] Forked 3889 +(3889) found +[2330] Forked 3890 +(3890) found +[2329] Forked 3891 +(3891) found +[2328] Forked 3892 +(3892) found +[2327] Forked 3893 +(3893) found +[2326] Forked 3894 +(3894) found +[2325] Forked 3895 +(3895) found +[2324] Forked 3896 +(3896) found +[2323] Forked 3897 +(3897) found +[2322] Forked 3898 +[2321] Forked 3899 +(3898) found +(3899) found +[2320] Forked 3900 +[2319] Forked 3901 +(3900) found +(3901) found +[2318] Forked 3902 +[2317] Forked 3903 +(3902) found +(3903) found +[2316] Forked 3904 +[2315] Forked 3905 +(3904) found +(3905) found +[2314] Forked 3906 +[2313] Forked 3907 +(3906) found +(3907) found +[2312] Forked 3908 +[2311] Forked 3909 +(3908) found +(3909) found +[2310] Forked 3910 +[2309] Forked 3911 +(3910) found +(3911) found +[2308] Forked 3912 +[2307] Forked 3913 +(3912) found +(3913) found +[2306] Forked 3914 +[2305] Forked 3915 +(3914) found +(3915) found +[2304] Forked 3916 +[2303] Forked 3917 +(3916) found +(3917) found +[2302] Forked 3918 +[2301] Forked 3919 +(3918) found +(3919) found +[2300] Forked 3920 +[2299] Forked 3921 +(3920) found +(3921) found +[2298] Forked 3922 +[2297] Forked 3923 +(3922) found +(3923) found +[2296] Forked 3924 +[2295] Forked 3926 +(3924) found +(3926) found +[2294] Forked 3927 +(3927) found +[2293] Forked 3928 +(3928) found +[2292] Forked 3929 +(3929) found +[2291] Forked 3930 +(3930) found +[2290] Forked 3931 +(3931) found +[2289] Forked 3932 +(3932) found +[2288] Forked 3933 +(3933) found +[2287] Forked 3934 +(3934) found +[2286] Forked 3935 +(3935) found +[2285] Forked 3936 +(3936) found +[2284] Forked 3937 +(3937) found +[2283] Forked 3938 +(3938) found +[2282] Forked 3939 +(3939) found +[2281] Forked 3940 +(3940) found +[2280] Forked 3941 +(3941) found +[2279] Forked 3942 +(3942) found +[2278] Forked 3943 +(3943) found +[2277] Forked 3944 +(3944) found +[2276] Forked 3945 +(3945) found +[2275] Forked 3946 +(3946) found +[2274] Forked 3947 +(3947) found +[2273] Forked 3948 +(3948) found +[2272] Forked 3949 +(3949) found +[2271] Forked 3950 +(3950) found +[2270] Forked 3951 +(3951) found +[2269] Forked 3952 +(3952) found +[2268] Forked 3953 +(3953) found +[2267] Forked 3954 +(3954) found +[2266] Forked 3955 +(3955) found +[2265] Forked 3956 +(3956) found +[2264] Forked 3957 +(3957) found +[2263] Forked 3958 +(3958) found +[2262] Forked 3959 +(3959) found +[2261] Forked 3960 +(3960) found +[2260] Forked 3961 +(3961) found +[2259] Forked 3962 +(3962) found +[2258] Forked 3963 +(3963) found +[2257] Forked 3964 +(3964) found +[2256] Forked 3965 +(3965) found +[2255] Forked 3966 +(3966) found +[2254] Forked 3967 +(3967) found +[2253] Forked 3968 +(3968) found +[2252] Forked 3969 +(3969) found +[2251] Forked 3970 +(3970) found +[2250] Forked 3971 +(3971) found +[2249] Forked 3972 +(3972) found +[2248] Forked 3973 +(3973) found +[2247] Forked 3974 +(3974) found +[2246] Forked 3975 +(3975) found +[2245] Forked 3976 +(3976) found +[2244] Forked 3977 +(3977) found +[2243] Forked 3978 +(3978) found +[2242] Forked 3979 +(3979) found +[2241] Forked 3980 +(3980) found +[2240] Forked 3981 +(3981) found +[2239] Forked 3982 +(3982) found +[2238] Forked 3983 +(3983) found +[2237] Forked 3984 +(3984) found +[2236] Forked 3985 +(3985) found +[2235] Forked 3986 +(3986) found +[2234] Forked 3987 +(3987) found +[2233] Forked 3988 +(3988) found +[2232] Forked 3989 +(3989) found +[2231] Forked 3990 +(3990) found +[2230] Forked 3991 +(3991) found +[2229] Forked 3992 +(3992) found +[2228] Forked 3993 +(3993) found +[2227] Forked 3994 +(3994) found +[2226] Forked 3995 +(3995) found +[2225] Forked 3996 +(3996) found +[2224] Forked 3997 +(3997) found +[2223] Forked 3998 +(3998) found +[2222] Forked 3999 +[2221] Forked 4000 +(3999) found +(4000) found +[2220] Forked 4001 +[2219] Forked 4002 +(4001) found +(4002) found +[2218] Forked 4003 +[2217] Forked 4004 +(4003) found +(4004) found +[2216] Forked 4005 +[2215] Forked 4006 +(4005) found +(4006) found +[2214] Forked 4007 +[2213] Forked 4008 +(4007) found +(4008) found +[2212] Forked 4009 +[2211] Forked 4010 +(4009) found +(4010) found +[2210] Forked 4011 +[2209] Forked 4012 +(4011) found +(4012) found +[2208] Forked 4013 +[2207] Forked 4014 +(4013) found +(4014) found +[2206] Forked 4015 +[2205] Forked 4016 +(4015) found +(4016) found +[2204] Forked 4017 +[2203] Forked 4018 +(4017) found +(4018) found +[2202] Forked 4019 +[2201] Forked 4020 +(4019) found +(4020) found +[2200] Forked 4021 +[2199] Forked 4022 +(4021) found +(4022) found +[2198] Forked 4023 +[2197] Forked 4024 +(4023) found +(4024) found +[2196] Forked 4025 +[2195] Forked 4026 +(4025) found +(4026) found +[2194] Forked 4028 +[2193] Forked 4029 +(4028) found +(4029) found +[2192] Forked 4030 +[2191] Forked 4031 +(4030) found +(4031) found +[2190] Forked 4032 +[2189] Forked 4034 +(4032) found +(4034) found +[2188] Forked 4035 +[2187] Forked 4037 +(4035) found +(4037) found +[2186] Forked 4038 +(4038) found +[2185] Forked 4039 +(4039) found +[2184] Forked 4040 +(4040) found +[2183] Forked 4041 +(4041) found +[2182] Forked 4042 +(4042) found +[2181] Forked 4043 +(4043) found +[2180] Forked 4044 +(4044) found +[2179] Forked 4045 +(4045) found +[2178] Forked 4046 +(4046) found +[2177] Forked 4047 +(4047) found +[2176] Forked 4048 +(4048) found +[2175] Forked 4049 +(4049) found +[2174] Forked 4052 +(4052) found +[2173] Forked 4053 +(4053) found +[2172] Forked 4054 +(4054) found +[2171] Forked 4055 +(4055) found +[2170] Forked 4056 +(4056) found +[2169] Forked 4057 +(4057) found +[2168] Forked 4058 +(4058) found +[2167] Forked 4059 +(4059) found +[2166] Forked 4060 +(4060) found +[2165] Forked 4061 +(4061) found +[2164] Forked 4062 +(4062) found +[2163] Forked 4063 +(4063) found +[2162] Forked 4064 +(4064) found +[2161] Forked 4065 +(4065) found +[2160] Forked 4066 +(4066) found +[2159] Forked 4067 +(4067) found +[2158] Forked 4068 +(4068) found +[2157] Forked 4069 +(4069) found +[2156] Forked 4070 +(4070) found +[2155] Forked 4071 +(4071) found +[2154] Forked 4072 +(4072) found +[2153] Forked 4074 +(4074) found +[2152] Forked 4075 +(4075) found +[2151] Forked 4076 +(4076) found +[2150] Forked 4077 +(4077) found +[2149] Forked 4078 +(4078) found +[2148] Forked 4079 +(4079) found +[2147] Forked 4080 +(4080) found +[2146] Forked 4081 +(4081) found +[2145] Forked 4082 +(4082) found +[2144] Forked 4083 +[2143] Forked 4086 +(4083) found +(4086) found +[2142] Forked 4088 +[2141] Forked 4089 +(4088) found +(4089) found +[2140] Forked 4090 +[2139] Forked 4093 +(4090) found +(4093) found +[2138] Forked 4095 +[2137] Forked 4096 +(4095) found +(4096) found +[2136] Forked 4097 +[2135] Forked 4098 +(4097) found +(4098) found +[2134] Forked 4099 +[2133] Forked 4100 +(4099) found +(4100) found +[2132] Forked 4101 +[2131] Forked 4102 +(4101) found +(4102) found +[2130] Forked 4103 +[2129] Forked 4104 +(4103) found +(4104) found +[2128] Forked 4105 +[2127] Forked 4106 +(4105) found +(4106) found +[2126] Forked 4107 +[2125] Forked 4108 +(4107) found +(4108) found +[2124] Forked 4109 +[2123] Forked 4110 +(4109) found +(4110) found +[2122] Forked 4111 +[2121] Forked 4112 +(4111) found +(4112) found +[2120] Forked 4113 +[2119] Forked 4114 +(4113) found +(4114) found +[2118] Forked 4115 +[2117] Forked 4116 +(4115) found +(4116) found +[2116] Forked 4117 +[2115] Forked 4118 +(4117) found +(4118) found +[2114] Forked 4119 +[2113] Forked 4120 +(4119) found +(4120) found +[2112] Forked 4121 +[2111] Forked 4122 +(4121) found +(4122) found +[2110] Forked 4123 +[2109] Forked 4124 +(4123) found +(4124) found +[2108] Forked 4125 +[2107] Forked 4126 +(4125) found +(4126) found +[2106] Forked 4127 +[2105] Forked 4128 +(4127) found +(4128) found +[2104] Forked 4129 +[2103] Forked 4130 +(4129) found +(4130) found +[2102] Forked 4131 +[2101] Forked 4132 +(4131) found +(4132) found +[2100] Forked 4133 +[2099] Forked 4134 +(4133) found +(4134) found +[2098] Forked 4135 +[2097] Forked 4136 +(4135) found +(4136) found +[2096] Forked 4137 +[2095] Forked 4138 +(4137) found +(4138) found +[2094] Forked 4139 +[2093] Forked 4140 +(4139) found +(4140) found +[2092] Forked 4141 +[2091] Forked 4142 +(4141) found +(4142) found +[2090] Forked 4143 +[2089] Forked 4144 +(4143) found +(4144) found +[2088] Forked 4145 +[2087] Forked 4146 +(4145) found +(4146) found +[2086] Forked 4147 +[2085] Forked 4148 +(4147) found +(4148) found +[2084] Forked 4149 +[2083] Forked 4150 +(4149) found +(4150) found +[2082] Forked 4151 +[2081] Forked 4152 +(4151) found +(4152) found +[2080] Forked 4153 +[2079] Forked 4154 +(4153) found +(4154) found +[2078] Forked 4155 +[2077] Forked 4156 +(4155) found +(4156) found +[2076] Forked 4157 +[2075] Forked 4158 +(4157) found +(4158) found +[2074] Forked 4159 +[2073] Forked 4160 +(4159) found +(4160) found +[2072] Forked 4161 +[2071] Forked 4162 +(4161) found +(4162) found +[2070] Forked 4163 +[2069] Forked 4164 +(4163) found +(4164) found +[2068] Forked 4165 +[2067] Forked 4166 +(4165) found +(4166) found +[2066] Forked 4167 +[2065] Forked 4168 +(4167) found +(4168) found +[2064] Forked 4169 +[2063] Forked 4170 +(4169) found +(4170) found +[2062] Forked 4171 +[2061] Forked 4172 +(4171) found +(4172) found +[2060] Forked 4173 +[2059] Forked 4174 +(4173) found +(4174) found +[2058] Forked 4175 +[2057] Forked 4176 +(4175) found +(4176) found +[2056] Forked 4177 +[2055] Forked 4178 +(4177) found +(4178) found +[2054] Forked 4179 +[2053] Forked 4180 +(4179) found +(4180) found +[2052] Forked 4181 +(4181) found +[2051] Forked 4182 +(4182) found +[2050] Forked 4183 +(4183) found +[2049] Forked 4184 +(4184) found +[2048] Forked 4185 +(4185) found +[2047] Forked 4186 +(4186) found +[2046] Forked 4187 +(4187) found +[2045] Forked 4188 +(4188) found +[2044] Forked 4189 +(4189) found +[2043] Forked 4190 +(4190) found +[2042] Forked 4191 +(4191) found +[2041] Forked 4192 +(4192) found +[2040] Forked 4193 +(4193) found +[2039] Forked 4194 +(4194) found +[2038] Forked 4195 +(4195) found +[2037] Forked 4196 +(4196) found +[2036] Forked 4197 +(4197) found +[2035] Forked 4198 +(4198) found +[2034] Forked 4199 +(4199) found +[2033] Forked 4200 +(4200) found +[2032] Forked 4201 +(4201) found +[2031] Forked 4202 +(4202) found +[2030] Forked 4203 +(4203) found +[2029] Forked 4204 +(4204) found +[2028] Forked 4205 +(4205) found +[2027] Forked 4206 +(4206) found +[2026] Forked 4207 +(4207) found +[2025] Forked 4208 +(4208) found +[2024] Forked 4209 +(4209) found +[2023] Forked 4210 +(4210) found +[2022] Forked 4211 +(4211) found +[2021] Forked 4212 +(4212) found +[2020] Forked 4213 +(4213) found +[2019] Forked 4214 +(4214) found +[2018] Forked 4215 +(4215) found +[2017] Forked 4216 +(4216) found +[2016] Forked 4217 +[2015] Forked 4218 +(4217) found +(4218) found +[2014] Forked 4219 +[2013] Forked 4220 +(4219) found +(4220) found +[2012] Forked 4221 +[2011] Forked 4222 +(4221) found +(4222) found +[2010] Forked 4223 +[2009] Forked 4224 +(4223) found +(4224) found +[2008] Forked 4225 +[2007] Forked 4226 +(4225) found +(4226) found +[2006] Forked 4227 +[2005] Forked 4228 +(4227) found +(4228) found +[2004] Forked 4229 +[2003] Forked 4230 +(4229) found +(4230) found +[2002] Forked 4231 +[2001] Forked 4232 +(4231) found +(4232) found +[2000] Forked 4233 +[1999] Forked 4234 +(4233) found +(4234) found +[1998] Forked 4235 +[1997] Forked 4236 +(4235) found +(4236) found +[1996] Forked 4237 +[1995] Forked 4238 +(4237) found +(4238) found +[1994] Forked 4239 +[1993] Forked 4240 +(4239) found +(4240) found +[1992] Forked 4242 +[1991] Forked 4243 +(4242) found +(4243) found +[1990] Forked 4244 +[1989] Forked 4245 +(4244) found +(4245) found +[1988] Forked 4247 +[1987] Forked 4248 +(4247) found +(4248) found +[1986] Forked 4249 +[1985] Forked 4250 +(4249) found +(4250) found +[1984] Forked 4251 +[1983] Forked 4252 +(4251) found +(4252) found +[1982] Forked 4254 +[1981] Forked 4255 +(4254) found +(4255) found +[1980] Forked 4256 +[1979] Forked 4257 +(4256) found +(4257) found +[1978] Forked 4258 +[1977] Forked 4259 +(4258) found +(4259) found +[1976] Forked 4260 +[1975] Forked 4261 +(4260) found +(4261) found +[1974] Forked 4262 +[1973] Forked 4263 +(4262) found +(4263) found +[1972] Forked 4264 +(4264) found +[1971] Forked 4265 +(4265) found +[1970] Forked 4266 +(4266) found +[1969] Forked 4267 +(4267) found +[1968] Forked 4268 +(4268) found +[1967] Forked 4269 +(4269) found +[1966] Forked 4270 +(4270) found +[1965] Forked 4271 +(4271) found +[1964] Forked 4272 +(4272) found +[1963] Forked 4273 +(4273) found +[1962] Forked 4274 +(4274) found +[1961] Forked 4275 +(4275) found +[1960] Forked 4276 +(4276) found +[1959] Forked 4277 +(4277) found +[1958] Forked 4278 +(4278) found +[1957] Forked 4279 +(4279) found +[1956] Forked 4280 +(4280) found +[1955] Forked 4281 +(4281) found +[1954] Forked 4282 +(4282) found +[1953] Forked 4284 +(4284) found +[1952] Forked 4285 +(4285) found +[1951] Forked 4286 +(4286) found +[1950] Forked 4287 +(4287) found +[1949] Forked 4288 +(4288) found +[1948] Forked 4289 +(4289) found +[1947] Forked 4290 +(4290) found +[1946] Forked 4291 +(4291) found +[1945] Forked 4292 +(4292) found +[1944] Forked 4293 +(4293) found +[1943] Forked 4294 +(4294) found +[1942] Forked 4295 +(4295) found +[1941] Forked 4296 +(4296) found +[1940] Forked 4297 +(4297) found +[1939] Forked 4298 +(4298) found +[1938] Forked 4299 +(4299) found +[1937] Forked 4300 +(4300) found +[1936] Forked 4301 +(4301) found +[1935] Forked 4302 +[1934] Forked 4303 +(4302) found +(4303) found +[1933] Forked 4304 +[1932] Forked 4305 +(4304) found +(4305) found +[1931] Forked 4306 +[1930] Forked 4307 +(4306) found +(4307) found +[1929] Forked 4308 +[1928] Forked 4309 +(4308) found +(4309) found +[1927] Forked 4310 +[1926] Forked 4311 +(4310) found +(4311) found +[1925] Forked 4312 +[1924] Forked 4313 +(4312) found +(4313) found +[1923] Forked 4314 +[1922] Forked 4315 +(4314) found +(4315) found +[1921] Forked 4316 +[1920] Forked 4317 +(4316) found +(4317) found +[1919] Forked 4318 +[1918] Forked 4319 +(4318) found +(4319) found +[1917] Forked 4320 +[1916] Forked 4321 +(4320) found +(4321) found +[1915] Forked 4322 +[1914] Forked 4323 +(4322) found +(4323) found +[1913] Forked 4324 +[1912] Forked 4325 +(4324) found +(4325) found +[1911] Forked 4326 +[1910] Forked 4327 +(4326) found +(4327) found +[1909] Forked 4328 +[1908] Forked 4329 +(4328) found +(4329) found +[1907] Forked 4330 +[1906] Forked 4331 +(4330) found +(4331) found +[1905] Forked 4332 +[1904] Forked 4333 +(4332) found +(4333) found +[1903] Forked 4334 +[1902] Forked 4335 +(4334) found +(4335) found +[1901] Forked 4336 +[1900] Forked 4337 +(4336) found +(4337) found +[1899] Forked 4338 +[1898] Forked 4339 +(4338) found +(4339) found +[1897] Forked 4340 +[1896] Forked 4342 +(4340) found +(4342) found +[1895] Forked 4343 +(4343) found +[1894] Forked 4344 +(4344) found +[1893] Forked 4345 +(4345) found +[1892] Forked 4346 +(4346) found +[1891] Forked 4347 +(4347) found +[1890] Forked 4348 +(4348) found +[1889] Forked 4349 +(4349) found +[1888] Forked 4350 +(4350) found +[1887] Forked 4351 +(4351) found +[1886] Forked 4352 +(4352) found +[1885] Forked 4353 +(4353) found +[1884] Forked 4354 +(4354) found +[1883] Forked 4355 +(4355) found +[1882] Forked 4356 +(4356) found +[1881] Forked 4357 +(4357) found +[1880] Forked 4358 +(4358) found +[1879] Forked 4359 +(4359) found +[1878] Forked 4360 +(4360) found +[1877] Forked 4361 +(4361) found +[1876] Forked 4362 +(4362) found +[1875] Forked 4363 +(4363) found +[1874] Forked 4364 +(4364) found +[1873] Forked 4365 +(4365) found +[1872] Forked 4366 +(4366) found +[1871] Forked 4367 +(4367) found +[1870] Forked 4368 +(4368) found +[1869] Forked 4369 +(4369) found +[1868] Forked 4370 +(4370) found +[1867] Forked 4371 +(4371) found +[1866] Forked 4372 +(4372) found +[1865] Forked 4373 +(4373) found +[1864] Forked 4374 +(4374) found +[1863] Forked 4375 +(4375) found +[1862] Forked 4376 +(4376) found +[1861] Forked 4377 +(4377) found +[1860] Forked 4378 +(4378) found +[1859] Forked 4379 +(4379) found +[1858] Forked 4380 +(4380) found +[1857] Forked 4381 +(4381) found +[1856] Forked 4382 +[1855] Forked 4383 +(4382) found +(4383) found +[1854] Forked 4384 +[1853] Forked 4385 +(4384) found +(4385) found +[1852] Forked 4386 +[1851] Forked 4387 +(4386) found +(4387) found +[1850] Forked 4388 +[1849] Forked 4389 +(4388) found +(4389) found +[1848] Forked 4390 +[1847] Forked 4391 +(4390) found +(4391) found +[1846] Forked 4392 +[1845] Forked 4393 +(4392) found +(4393) found +[1844] Forked 4394 +[1843] Forked 4395 +(4394) found +(4395) found +[1842] Forked 4396 +[1841] Forked 4397 +(4396) found +(4397) found +[1840] Forked 4398 +[1839] Forked 4399 +(4398) found +(4399) found +[1838] Forked 4400 +[1837] Forked 4401 +(4400) found +(4401) found +[1836] Forked 4402 +[1835] Forked 4403 +(4402) found +(4403) found +[1834] Forked 4404 +[1833] Forked 4405 +(4404) found +(4405) found +[1832] Forked 4406 +[1831] Forked 4407 +(4406) found +(4407) found +[1830] Forked 4408 +[1829] Forked 4409 +(4408) found +(4409) found +[1828] Forked 4410 +[1827] Forked 4411 +(4410) found +(4411) found +[1826] Forked 4412 +[1825] Forked 4413 +(4412) found +(4413) found +[1824] Forked 4414 +[1823] Forked 4415 +(4414) found +(4415) found +[1822] Forked 4416 +[1821] Forked 4417 +(4416) found +(4417) found +[1820] Forked 4418 +[1819] Forked 4419 +(4418) found +(4419) found +[1818] Forked 4420 +[1817] Forked 4421 +(4420) found +(4421) found +[1816] Forked 4422 +[1815] Forked 4423 +(4422) found +(4423) found +[1814] Forked 4424 +(4424) found +[1813] Forked 4425 +(4425) found +[1812] Forked 4426 +(4426) found +[1811] Forked 4427 +(4427) found +[1810] Forked 4428 +(4428) found +[1809] Forked 4429 +(4429) found +[1808] Forked 4430 +(4430) found +[1807] Forked 4431 +(4431) found +[1806] Forked 4432 +(4432) found +[1805] Forked 4433 +(4433) found +[1804] Forked 4434 +(4434) found +[1803] Forked 4435 +(4435) found +[1802] Forked 4436 +(4436) found +[1801] Forked 4437 +(4437) found +[1800] Forked 4438 +(4438) found +[1799] Forked 4439 +(4439) found +[1798] Forked 4440 +(4440) found +[1797] Forked 4441 +(4441) found +[1796] Forked 4442 +(4442) found +[1795] Forked 4443 +(4443) found +[1794] Forked 4444 +(4444) found +[1793] Forked 4445 +(4445) found +[1792] Forked 4446 +(4446) found +[1791] Forked 4447 +(4447) found +[1790] Forked 4448 +(4448) found +[1789] Forked 4449 +(4449) found +[1788] Forked 4450 +(4450) found +[1787] Forked 4451 +(4451) found +[1786] Forked 4452 +(4452) found +[1785] Forked 4453 +(4453) found +[1784] Forked 4454 +(4454) found +[1783] Forked 4455 +(4455) found +[1782] Forked 4456 +(4456) found +[1781] Forked 4457 +(4457) found +[1780] Forked 4458 +(4458) found +[1779] Forked 4459 +(4459) found +[1778] Forked 4460 +[1777] Forked 4461 +(4460) found +(4461) found +[1776] Forked 4462 +[1775] Forked 4463 +(4462) found +(4463) found +[1774] Forked 4464 +[1773] Forked 4465 +(4464) found +(4465) found +[1772] Forked 4466 +[1771] Forked 4467 +(4466) found +(4467) found +[1770] Forked 4468 +[1769] Forked 4469 +(4468) found +(4469) found +[1768] Forked 4470 +[1767] Forked 4471 +(4470) found +(4471) found +[1766] Forked 4472 +[1765] Forked 4473 +(4472) found +(4473) found +[1764] Forked 4474 +[1763] Forked 4475 +(4474) found +(4475) found +[1762] Forked 4476 +[1761] Forked 4477 +(4476) found +(4477) found +[1760] Forked 4478 +[1759] Forked 4479 +(4478) found +(4479) found +[1758] Forked 4480 +[1757] Forked 4481 +(4480) found +(4481) found +[1756] Forked 4482 +[1755] Forked 4483 +(4482) found +(4483) found +[1754] Forked 4484 +[1753] Forked 4485 +(4484) found +(4485) found +[1752] Forked 4486 +[1751] Forked 4487 +(4486) found +(4487) found +[1750] Forked 4488 +[1749] Forked 4489 +(4488) found +(4489) found +[1748] Forked 4490 +[1747] Forked 4491 +(4490) found +(4491) found +[1746] Forked 4492 +[1745] Forked 4493 +(4492) found +(4493) found +[1744] Forked 4494 +[1743] Forked 4495 +(4494) found +(4495) found +[1742] Forked 4496 +[1741] Forked 4497 +(4496) found +(4497) found +[1740] Forked 4498 +[1739] Forked 4499 +(4498) found +(4499) found +[1738] Forked 4500 +[1737] Forked 4501 +(4500) found +(4501) found +[1736] Forked 4502 +[1735] Forked 4503 +(4502) found +(4503) found +[1734] Forked 4504 +[1733] Forked 4505 +(4504) found +(4505) found +[1732] Forked 4506 +[1731] Forked 4507 +(4506) found +(4507) found +[1730] Forked 4508 +[1729] Forked 4509 +(4508) found +(4509) found +[1728] Forked 4510 +[1727] Forked 4511 +(4510) found +(4511) found +[1726] Forked 4512 +[1725] Forked 4513 +(4512) found +(4513) found +[1724] Forked 4514 +[1723] Forked 4515 +(4514) found +(4515) found +[1722] Forked 4516 +[1721] Forked 4517 +(4516) found +(4517) found +[1720] Forked 4518 +[1719] Forked 4519 +(4518) found +(4519) found +[1718] Forked 4520 +[1717] Forked 4521 +(4520) found +(4521) found +[1716] Forked 4522 +[1715] Forked 4523 +(4522) found +(4523) found +[1714] Forked 4524 +[1713] Forked 4525 +(4524) found +(4525) found +[1712] Forked 4526 +[1711] Forked 4527 +(4526) found +(4527) found +[1710] Forked 4528 +[1709] Forked 4529 +(4528) found +(4529) found +[1708] Forked 4530 +[1707] Forked 4531 +(4530) found +(4531) found +[1706] Forked 4532 +[1705] Forked 4533 +(4532) found +(4533) found +[1704] Forked 4534 +[1703] Forked 4535 +(4534) found +(4535) found +[1702] Forked 4536 +[1701] Forked 4537 +(4536) found +(4537) found +[1700] Forked 4538 +[1699] Forked 4539 +(4538) found +(4539) found +[1698] Forked 4540 +[1697] Forked 4541 +(4540) found +(4541) found +[1696] Forked 4542 +[1695] Forked 4543 +(4542) found +(4543) found +[1694] Forked 4544 +[1693] Forked 4545 +(4544) found +(4545) found +[1692] Forked 4546 +[1691] Forked 4547 +(4546) found +(4547) found +[1690] Forked 4548 +[1689] Forked 4549 +(4548) found +(4549) found +[1688] Forked 4550 +[1687] Forked 4551 +(4550) found +(4551) found +[1686] Forked 4552 +(4552) found +[1685] Forked 4553 +(4553) found +[1684] Forked 4554 +(4554) found +[1683] Forked 4555 +(4555) found +[1682] Forked 4556 +(4556) found +[1681] Forked 4557 +(4557) found +[1680] Forked 4558 +(4558) found +[1679] Forked 4559 +(4559) found +[1678] Forked 4560 +(4560) found +[1677] Forked 4561 +(4561) found +[1676] Forked 4562 +(4562) found +[1675] Forked 4563 +(4563) found +[1674] Forked 4564 +(4564) found +[1673] Forked 4565 +(4565) found +[1672] Forked 4566 +(4566) found +[1671] Forked 4567 +(4567) found +[1670] Forked 4568 +(4568) found +[1669] Forked 4569 +(4569) found +[1668] Forked 4570 +(4570) found +[1667] Forked 4571 +(4571) found +[1666] Forked 4572 +(4572) found +[1665] Forked 4573 +(4573) found +[1664] Forked 4574 +(4574) found +[1663] Forked 4575 +(4575) found +[1662] Forked 4576 +(4576) found +[1661] Forked 4577 +(4577) found +[1660] Forked 4578 +(4578) found +[1659] Forked 4579 +(4579) found +[1658] Forked 4580 +(4580) found +[1657] Forked 4581 +(4581) found +[1656] Forked 4582 +(4582) found +[1655] Forked 4583 +(4583) found +[1654] Forked 4584 +[1653] Forked 4585 +(4584) found +(4585) found +[1652] Forked 4586 +[1651] Forked 4587 +(4586) found +(4587) found +[1650] Forked 4588 +[1649] Forked 4589 +(4588) found +(4589) found +[1648] Forked 4590 +[1647] Forked 4591 +(4590) found +(4591) found +[1646] Forked 4593 +[1645] Forked 4594 +(4593) found +(4594) found +[1644] Forked 4595 +[1643] Forked 4596 +(4595) found +(4596) found +[1642] Forked 4597 +[1641] Forked 4598 +(4597) found +(4598) found +[1640] Forked 4599 +[1639] Forked 4600 +(4599) found +(4600) found +[1638] Forked 4601 +[1637] Forked 4602 +(4601) found +(4602) found +[1636] Forked 4603 +[1635] Forked 4604 +(4603) found +(4604) found +[1634] Forked 4605 +[1633] Forked 4606 +(4605) found +(4606) found +[1632] Forked 4607 +[1631] Forked 4608 +(4607) found +(4608) found +[1630] Forked 4609 +[1629] Forked 4610 +(4609) found +(4610) found +[1628] Forked 4611 +[1627] Forked 4612 +(4611) found +(4612) found +[1626] Forked 4613 +[1625] Forked 4614 +(4613) found +(4614) found +[1624] Forked 4615 +[1623] Forked 4616 +(4615) found +(4616) found +[1622] Forked 4617 +[1621] Forked 4618 +(4617) found +(4618) found +[1620] Forked 4619 +[1619] Forked 4620 +(4619) found +(4620) found +[1618] Forked 4621 +[1617] Forked 4622 +(4621) found +(4622) found +[1616] Forked 4623 +[1615] Forked 4624 +(4623) found +(4624) found +[1614] Forked 4625 +[1613] Forked 4626 +(4625) found +(4626) found +[1612] Forked 4627 +[1611] Forked 4628 +(4627) found +(4628) found +[1610] Forked 4629 +[1609] Forked 4630 +(4629) found +(4630) found +[1608] Forked 4631 +[1607] Forked 4632 +(4631) found +(4632) found +[1606] Forked 4633 +(4633) found +[1605] Forked 4634 +(4634) found +[1604] Forked 4635 +(4635) found +[1603] Forked 4636 +(4636) found +[1602] Forked 4637 +(4637) found +[1601] Forked 4638 +(4638) found +[1600] Forked 4639 +(4639) found +[1599] Forked 4640 +(4640) found +[1598] Forked 4641 +(4641) found +[1597] Forked 4642 +(4642) found +[1596] Forked 4643 +(4643) found +[1595] Forked 4644 +(4644) found +[1594] Forked 4645 +(4645) found +[1593] Forked 4646 +(4646) found +[1592] Forked 4647 +(4647) found +[1591] Forked 4648 +(4648) found +[1590] Forked 4649 +(4649) found +[1589] Forked 4650 +(4650) found +[1588] Forked 4651 +(4651) found +[1587] Forked 4652 +(4652) found +[1586] Forked 4653 +(4653) found +[1585] Forked 4654 +(4654) found +[1584] Forked 4655 +(4655) found +[1583] Forked 4656 +(4656) found +[1582] Forked 4657 +(4657) found +[1581] Forked 4658 +(4658) found +[1580] Forked 4659 +(4659) found +[1579] Forked 4660 +(4660) found +[1578] Forked 4661 +(4661) found +[1577] Forked 4662 +(4662) found +[1576] Forked 4663 +[1575] Forked 4664 +(4664) found +(4663) found +[1574] Forked 4665 +(4665) found +[1573] Forked 4666 +(4666) found +[1572] Forked 4667 +(4667) found +[1571] Forked 4668 +(4668) found +[1570] Forked 4669 +(4669) found +[1569] Forked 4670 +(4670) found +[1568] Forked 4671 +(4671) found +[1567] Forked 4672 +(4672) found +[1566] Forked 4673 +(4673) found +[1565] Forked 4674 +(4674) found +[1564] Forked 4675 +(4675) found +[1563] Forked 4676 +(4676) found +[1562] Forked 4677 +(4677) found +[1561] Forked 4678 +(4678) found +[1560] Forked 4679 +(4679) found +[1559] Forked 4680 +(4680) found +[1558] Forked 4681 +(4681) found +[1557] Forked 4682 +(4682) found +[1556] Forked 4683 +(4683) found +[1555] Forked 4684 +(4684) found +[1554] Forked 4685 +(4685) found +[1553] Forked 4686 +(4686) found +[1552] Forked 4687 +(4687) found +[1551] Forked 4688 +(4688) found +[1550] Forked 4689 +(4689) found +[1549] Forked 4690 +(4690) found +[1548] Forked 4691 +(4691) found +[1547] Forked 4692 +(4692) found +[1546] Forked 4693 +(4693) found +[1545] Forked 4694 +(4694) found +[1544] Forked 4695 +(4695) found +[1543] Forked 4696 +(4696) found +[1542] Forked 4697 +(4697) found +[1541] Forked 4698 +(4698) found +[1540] Forked 4699 +(4699) found +[1539] Forked 4700 +(4700) found +[1538] Forked 4701 +(4701) found +[1537] Forked 4702 +(4702) found +[1536] Forked 4703 +(4703) found +[1535] Forked 4704 +(4704) found +[1534] Forked 4705 +(4705) found +[1533] Forked 4706 +(4706) found +[1532] Forked 4707 +(4707) found +[1531] Forked 4708 +(4708) found +[1530] Forked 4709 +(4709) found +[1529] Forked 4710 +(4710) found +[1528] Forked 4711 +(4711) found +[1527] Forked 4712 +(4712) found +[1526] Forked 4713 +(4713) found +[1525] Forked 4714 +(4714) found +[1524] Forked 4715 +(4715) found +[1523] Forked 4716 +(4716) found +[1522] Forked 4717 +(4717) found +[1521] Forked 4718 +(4718) found +[1520] Forked 4719 +(4719) found +[1519] Forked 4720 +(4720) found +[1518] Forked 4721 +(4721) found +[1517] Forked 4722 +(4722) found +[1516] Forked 4723 +(4723) found +[1515] Forked 4724 +(4724) found +[1514] Forked 4725 +(4725) found +[1513] Forked 4726 +(4726) found +[1512] Forked 4727 +(4727) found +[1511] Forked 4728 +(4728) found +[1510] Forked 4729 +(4729) found +[1509] Forked 4730 +(4730) found +[1508] Forked 4731 +(4731) found +[1507] Forked 4732 +(4732) found +[1506] Forked 4733 +(4733) found +[1505] Forked 4734 +(4734) found +[1504] Forked 4735 +(4735) found +[1503] Forked 4736 +[1502] Forked 4737 +(4736) found +(4737) found +[1501] Forked 4738 +[1500] Forked 4739 +(4738) found +(4739) found +[1499] Forked 4740 +[1498] Forked 4741 +(4740) found +(4741) found +[1497] Forked 4742 +[1496] Forked 4743 +(4742) found +(4743) found +[1495] Forked 4744 +[1494] Forked 4745 +(4744) found +(4745) found +[1493] Forked 4746 +[1492] Forked 4747 +(4746) found +(4747) found +[1491] Forked 4748 +[1490] Forked 4749 +(4748) found +(4749) found +[1489] Forked 4750 +[1488] Forked 4751 +(4750) found +(4751) found +[1487] Forked 4752 +[1486] Forked 4753 +(4752) found +(4753) found +[1485] Forked 4754 +[1484] Forked 4755 +(4754) found +(4755) found +[1483] Forked 4756 +[1482] Forked 4757 +(4756) found +(4757) found +[1481] Forked 4758 +[1480] Forked 4759 +(4758) found +(4759) found +[1479] Forked 4760 +[1478] Forked 4761 +(4760) found +(4761) found +[1477] Forked 4762 +[1476] Forked 4763 +(4762) found +(4763) found +[1475] Forked 4764 +[1474] Forked 4765 +(4764) found +(4765) found +[1473] Forked 4766 +[1472] Forked 4767 +(4766) found +(4767) found +[1471] Forked 4768 +[1470] Forked 4769 +(4768) found +(4769) found +[1469] Forked 4770 +[1468] Forked 4771 +(4770) found +(4771) found +[1467] Forked 4772 +[1466] Forked 4773 +(4772) found +(4773) found +[1465] Forked 4774 +[1464] Forked 4775 +(4774) found +(4775) found +[1463] Forked 4776 +[1462] Forked 4777 +(4776) found +(4777) found +[1461] Forked 4778 +[1460] Forked 4779 +(4778) found +(4779) found +[1459] Forked 4780 +(4780) found +[1458] Forked 4781 +(4781) found +[1457] Forked 4782 +(4782) found +[1456] Forked 4783 +(4783) found +[1455] Forked 4784 +(4784) found +[1454] Forked 4785 +(4785) found +[1453] Forked 4786 +(4786) found +[1452] Forked 4787 +(4787) found +[1451] Forked 4788 +(4788) found +[1450] Forked 4789 +(4789) found +[1449] Forked 4790 +(4790) found +[1448] Forked 4791 +(4791) found +[1447] Forked 4792 +(4792) found +[1446] Forked 4793 +(4793) found +[1445] Forked 4794 +(4794) found +[1444] Forked 4795 +(4795) found +[1443] Forked 4796 +(4796) found +[1442] Forked 4797 +(4797) found +[1441] Forked 4798 +(4798) found +[1440] Forked 4799 +(4799) found +[1439] Forked 4800 +(4800) found +[1438] Forked 4801 +(4801) found +[1437] Forked 4802 +(4802) found +[1436] Forked 4803 +(4803) found +[1435] Forked 4804 +(4804) found +[1434] Forked 4805 +(4805) found +[1433] Forked 4806 +(4806) found +[1432] Forked 4807 +(4807) found +[1431] Forked 4808 +(4808) found +[1430] Forked 4809 +(4809) found +[1429] Forked 4810 +(4810) found +[1428] Forked 4811 +(4811) found +[1427] Forked 4812 +(4812) found +[1426] Forked 4813 +(4813) found +[1425] Forked 4814 +(4814) found +[1424] Forked 4815 +(4815) found +[1423] Forked 4816 +[1422] Forked 4817 +(4816) found +(4817) found +[1421] Forked 4818 +[1420] Forked 4819 +(4818) found +(4819) found +[1419] Forked 4820 +(4820) found +[1418] Forked 4821 +[1417] Forked 4822 +(4821) found +(4822) found +[1416] Forked 4823 +[1415] Forked 4824 +(4823) found +(4824) found +[1414] Forked 4825 +[1413] Forked 4826 +(4825) found +(4826) found +[1412] Forked 4827 +[1411] Forked 4828 +(4827) found +(4828) found +[1410] Forked 4829 +[1409] Forked 4830 +(4829) found +(4830) found +[1408] Forked 4831 +[1407] Forked 4832 +(4831) found +(4832) found +[1406] Forked 4833 +[1405] Forked 4834 +(4833) found +(4834) found +[1404] Forked 4835 +[1403] Forked 4836 +(4835) found +(4836) found +[1402] Forked 4837 +[1401] Forked 4838 +(4837) found +(4838) found +[1400] Forked 4839 +[1399] Forked 4840 +(4839) found +(4840) found +[1398] Forked 4841 +[1397] Forked 4842 +(4841) found +(4842) found +[1396] Forked 4843 +[1395] Forked 4844 +(4843) found +(4844) found +[1394] Forked 4845 +[1393] Forked 4846 +(4845) found +(4846) found +[1392] Forked 4847 +[1391] Forked 4848 +(4847) found +(4848) found +[1390] Forked 4849 +[1389] Forked 4850 +(4849) found +(4850) found +[1388] Forked 4851 +[1387] Forked 4852 +(4851) found +(4852) found +[1386] Forked 4853 +[1385] Forked 4854 +(4853) found +(4854) found +[1384] Forked 4855 +[1383] Forked 4856 +(4855) found +(4856) found +[1382] Forked 4857 +[1381] Forked 4858 +(4857) found +(4858) found +[1380] Forked 4859 +(4859) found +[1379] Forked 4860 +[1378] Forked 4861 +(4860) found +(4861) found +[1377] Forked 4862 +[1376] Forked 4863 +(4862) found +(4863) found +[1375] Forked 4864 +[1374] Forked 4865 +(4864) found +(4865) found +[1373] Forked 4866 +[1372] Forked 4867 +(4866) found +(4867) found +[1371] Forked 4868 +[1370] Forked 4869 +(4868) found +(4869) found +[1369] Forked 4870 +[1368] Forked 4871 +(4870) found +(4871) found +[1367] Forked 4872 +[1366] Forked 4873 +(4872) found +(4873) found +[1365] Forked 4874 +[1364] Forked 4875 +(4874) found +(4875) found +[1363] Forked 4876 +[1362] Forked 4877 +(4876) found +(4877) found +[1361] Forked 4878 +[1360] Forked 4879 +(4878) found +(4879) found +[1359] Forked 4880 +[1358] Forked 4881 +(4880) found +(4881) found +[1357] Forked 4882 +[1356] Forked 4883 +(4882) found +(4883) found +[1355] Forked 4884 +[1354] Forked 4885 +(4884) found +(4885) found +[1353] Forked 4886 +[1352] Forked 4887 +(4886) found +(4887) found +[1351] Forked 4888 +[1350] Forked 4889 +(4888) found +(4889) found +[1349] Forked 4890 +[1348] Forked 4891 +(4890) found +(4891) found +[1347] Forked 4892 +[1346] Forked 4893 +(4892) found +(4893) found +[1345] Forked 4894 +[1344] Forked 4895 +(4894) found +(4895) found +[1343] Forked 4896 +[1342] Forked 4897 +(4896) found +(4897) found +[1341] Forked 4898 +[1340] Forked 4899 +(4898) found +(4899) found +[1339] Forked 4900 +[1338] Forked 4901 +(4900) found +(4901) found +[1337] Forked 4902 +[1336] Forked 4903 +(4902) found +(4903) found +[1335] Forked 4904 +[1334] Forked 4905 +(4904) found +(4905) found +[1333] Forked 4906 +[1332] Forked 4907 +(4906) found +(4907) found +[1331] Forked 4908 +[1330] Forked 4909 +(4908) found +(4909) found +[1329] Forked 4910 +[1328] Forked 4911 +(4910) found +(4911) found +[1327] Forked 4912 +[1326] Forked 4913 +(4912) found +(4913) found +[1325] Forked 4914 +[1324] Forked 4915 +(4914) found +(4915) found +[1323] Forked 4916 +[1322] Forked 4917 +(4916) found +(4917) found +[1321] Forked 4918 +[1320] Forked 4919 +(4918) found +(4919) found +[1319] Forked 4920 +[1318] Forked 4921 +(4920) found +(4921) found +[1317] Forked 4922 +[1316] Forked 4923 +(4922) found +(4923) found +[1315] Forked 4924 +[1314] Forked 4925 +(4924) found +(4925) found +[1313] Forked 4926 +[1312] Forked 4927 +(4926) found +(4927) found +[1311] Forked 4928 +[1310] Forked 4929 +(4928) found +(4929) found +[1309] Forked 4930 +[1308] Forked 4931 +(4930) found +(4931) found +[1307] Forked 4932 +[1306] Forked 4933 +(4932) found +(4933) found +[1305] Forked 4934 +[1304] Forked 4935 +(4934) found +(4935) found +[1303] Forked 4936 +[1302] Forked 4937 +(4936) found +(4937) found +[1301] Forked 4938 +[1300] Forked 4939 +(4938) found +(4939) found +[1299] Forked 4940 +[1298] Forked 4941 +(4940) found +(4941) found +[1297] Forked 4942 +[1296] Forked 4943 +(4942) found +(4943) found +[1295] Forked 4944 +[1294] Forked 4945 +(4944) found +(4945) found +[1293] Forked 4946 +[1292] Forked 4947 +(4946) found +(4947) found +[1291] Forked 4948 +[1290] Forked 4949 +(4948) found +(4949) found +[1289] Forked 4950 +[1288] Forked 4951 +(4950) found +(4951) found +[1287] Forked 4952 +[1286] Forked 4953 +(4952) found +(4953) found +[1285] Forked 4954 +[1284] Forked 4955 +(4954) found +(4955) found +[1283] Forked 4956 +[1282] Forked 4957 +(4956) found +(4957) found +[1281] Forked 4958 +[1280] Forked 4959 +(4958) found +(4959) found +[1279] Forked 4960 +[1278] Forked 4961 +(4960) found +(4961) found +[1277] Forked 4962 +[1276] Forked 4963 +(4962) found +(4963) found +[1275] Forked 4964 +[1274] Forked 4965 +(4964) found +(4965) found +[1273] Forked 4966 +[1272] Forked 4967 +(4966) found +(4967) found +[1271] Forked 4968 +[1270] Forked 4969 +(4968) found +(4969) found +[1269] Forked 4970 +[1268] Forked 4971 +(4970) found +(4971) found +[1267] Forked 4972 +[1266] Forked 4973 +(4972) found +(4973) found +[1265] Forked 4974 +[1264] Forked 4975 +(4974) found +(4975) found +[1263] Forked 4976 +[1262] Forked 4977 +(4976) found +(4977) found +[1261] Forked 4978 +[1260] Forked 4979 +(4978) found +(4979) found +[1259] Forked 4980 +[1258] Forked 4981 +(4980) found +(4981) found +[1257] Forked 4982 +[1256] Forked 4983 +(4982) found +(4983) found +[1255] Forked 4984 +[1254] Forked 4985 +(4984) found +(4985) found +[1253] Forked 4986 +[1252] Forked 4987 +(4986) found +(4987) found +[1251] Forked 4988 +[1250] Forked 4989 +(4988) found +(4989) found +[1249] Forked 4990 +[1248] Forked 4991 +(4990) found +(4991) found +[1247] Forked 4992 +[1246] Forked 4993 +(4992) found +(4993) found +[1245] Forked 4994 +[1244] Forked 4995 +(4994) found +(4995) found +[1243] Forked 4996 +[1242] Forked 4997 +(4996) found +(4997) found +[1241] Forked 4998 +[1240] Forked 4999 +(4998) found +(4999) found +[1239] Forked 5000 +[1238] Forked 5001 +(5000) found +(5001) found +[1237] Forked 5002 +[1236] Forked 5003 +(5002) found +(5003) found +[1235] Forked 5004 +[1234] Forked 5005 +(5004) found +(5005) found +[1233] Forked 5006 +[1232] Forked 5007 +(5006) found +(5007) found +[1231] Forked 5008 +[1230] Forked 5009 +(5008) found +(5009) found +[1229] Forked 5010 +[1228] Forked 5011 +(5010) found +(5011) found +[1227] Forked 5012 +[1226] Forked 5013 +(5012) found +(5013) found +[1225] Forked 5014 +[1224] Forked 5015 +(5014) found +(5015) found +[1223] Forked 5016 +[1222] Forked 5017 +(5016) found +(5017) found +[1221] Forked 5018 +[1220] Forked 5019 +(5018) found +(5019) found +[1219] Forked 5020 +[1218] Forked 5021 +(5020) found +(5021) found +[1217] Forked 5022 +[1216] Forked 5023 +(5022) found +(5023) found +[1215] Forked 5024 +[1214] Forked 5025 +(5024) found +(5025) found +[1213] Forked 5026 +[1212] Forked 5027 +(5026) found +(5027) found +[1211] Forked 5028 +[1210] Forked 5029 +(5028) found +(5029) found +[1209] Forked 5030 +[1208] Forked 5031 +(5030) found +(5031) found +[1207] Forked 5032 +[1206] Forked 5033 +(5032) found +(5033) found +[1205] Forked 5034 +[1204] Forked 5035 +(5034) found +(5035) found +[1203] Forked 5036 +[1202] Forked 5037 +(5036) found +(5037) found +[1201] Forked 5038 +[1200] Forked 5039 +(5038) found +(5039) found +[1199] Forked 5040 +[1198] Forked 5041 +(5040) found +(5041) found +[1197] Forked 5042 +(5042) found +[1196] Forked 5043 +(5043) found +[1195] Forked 5044 +(5044) found +[1194] Forked 5045 +(5045) found +[1193] Forked 5046 +(5046) found +[1192] Forked 5047 +(5047) found +[1191] Forked 5048 +(5048) found +[1190] Forked 5049 +(5049) found +[1189] Forked 5050 +(5050) found +[1188] Forked 5051 +(5051) found +[1187] Forked 5052 +(5052) found +[1186] Forked 5053 +(5053) found +[1185] Forked 5054 +(5054) found +[1184] Forked 5055 +(5055) found +[1183] Forked 5056 +(5056) found +[1182] Forked 5057 +(5057) found +[1181] Forked 5058 +(5058) found +[1180] Forked 5059 +(5059) found +[1179] Forked 5060 +(5060) found +[1178] Forked 5061 +(5061) found +[1177] Forked 5062 +(5062) found +[1176] Forked 5063 +(5063) found +[1175] Forked 5064 +(5064) found +[1174] Forked 5065 +(5065) found +[1173] Forked 5066 +(5066) found +[1172] Forked 5067 +(5067) found +[1171] Forked 5068 +(5068) found +[1170] Forked 5069 +(5069) found +[1169] Forked 5070 +(5070) found +[1168] Forked 5071 +(5071) found +[1167] Forked 5072 +(5072) found +[1166] Forked 5073 +(5073) found +[1165] Forked 5074 +(5074) found +[1164] Forked 5075 +(5075) found +[1163] Forked 5076 +[1162] Forked 5077 +(5076) found +(5077) found +[1161] Forked 5078 +[1160] Forked 5079 +(5078) found +(5079) found +[1159] Forked 5080 +[1158] Forked 5081 +(5080) found +(5081) found +[1157] Forked 5082 +[1156] Forked 5083 +(5082) found +(5083) found +[1155] Forked 5084 +[1154] Forked 5085 +(5084) found +(5085) found +[1153] Forked 5086 +[1152] Forked 5087 +(5086) found +(5087) found +[1151] Forked 5088 +[1150] Forked 5089 +(5088) found +(5089) found +[1149] Forked 5090 +[1148] Forked 5091 +(5090) found +(5091) found +[1147] Forked 5092 +[1146] Forked 5093 +(5092) found +(5093) found +[1145] Forked 5094 +[1144] Forked 5095 +(5094) found +(5095) found +[1143] Forked 5096 +[1142] Forked 5097 +(5096) found +(5097) found +[1141] Forked 5098 +[1140] Forked 5099 +(5098) found +(5099) found +[1139] Forked 5100 +[1138] Forked 5101 +(5100) found +(5101) found +[1137] Forked 5102 +[1136] Forked 5103 +(5102) found +(5103) found +[1135] Forked 5104 +[1134] Forked 5105 +(5104) found +(5105) found +[1133] Forked 5106 +[1132] Forked 5107 +(5106) found +(5107) found +[1131] Forked 5108 +[1130] Forked 5109 +(5108) found +(5109) found +[1129] Forked 5110 +[1128] Forked 5111 +(5110) found +(5111) found +[1127] Forked 5112 +[1126] Forked 5113 +(5112) found +(5113) found +[1125] Forked 5114 +[1124] Forked 5115 +(5114) found +(5115) found +[1123] Forked 5116 +[1122] Forked 5117 +(5116) found +(5117) found +[1121] Forked 5118 +[1120] Forked 5119 +(5118) found +(5119) found +[1119] Forked 5120 +[1118] Forked 5121 +(5120) found +(5121) found +[1117] Forked 5122 +[1116] Forked 5123 +(5122) found +(5123) found +[1115] Forked 5124 +[1114] Forked 5125 +(5124) found +(5125) found +[1113] Forked 5126 +[1112] Forked 5127 +(5126) found +(5127) found +[1111] Forked 5128 +[1110] Forked 5129 +(5128) found +(5129) found +[1109] Forked 5130 +[1108] Forked 5131 +(5130) found +(5131) found +[1107] Forked 5132 +[1106] Forked 5133 +(5132) found +(5133) found +[1105] Forked 5134 +[1104] Forked 5135 +(5134) found +(5135) found +[1103] Forked 5136 +[1102] Forked 5137 +(5136) found +(5137) found +[1101] Forked 5138 +[1100] Forked 5139 +(5138) found +(5139) found +[1099] Forked 5140 +[1098] Forked 5141 +(5140) found +(5141) found +[1097] Forked 5142 +[1096] Forked 5143 +(5142) found +(5143) found +[1095] Forked 5144 +[1094] Forked 5145 +(5144) found +(5145) found +[1093] Forked 5146 +[1092] Forked 5147 +(5146) found +(5147) found +[1091] Forked 5148 +[1090] Forked 5149 +(5148) found +(5149) found +[1089] Forked 5150 +[1088] Forked 5151 +(5150) found +(5151) found +[1087] Forked 5152 +[1086] Forked 5153 +(5152) found +(5153) found +[1085] Forked 5154 +[1084] Forked 5155 +(5154) found +(5155) found +[1083] Forked 5156 +[1082] Forked 5157 +(5156) found +(5157) found +[1081] Forked 5158 +[1080] Forked 5159 +(5158) found +(5159) found +[1079] Forked 5160 +[1078] Forked 5161 +(5160) found +(5161) found +[1077] Forked 5162 +[1076] Forked 5163 +(5162) found +(5163) found +[1075] Forked 5164 +[1074] Forked 5165 +(5164) found +(5165) found +[1073] Forked 5166 +(5166) found +[1072] Forked 5167 +(5167) found +[1071] Forked 5168 +(5168) found +[1070] Forked 5169 +(5169) found +[1069] Forked 5170 +(5170) found +[1068] Forked 5171 +(5171) found +[1067] Forked 5172 +(5172) found +[1066] Forked 5173 +(5173) found +[1065] Forked 5174 +(5174) found +[1064] Forked 5175 +(5175) found +[1063] Forked 5176 +(5176) found +[1062] Forked 5177 +(5177) found +[1061] Forked 5178 +(5178) found +[1060] Forked 5179 +(5179) found +[1059] Forked 5180 +(5180) found +[1058] Forked 5181 +(5181) found +[1057] Forked 5182 +(5182) found +[1056] Forked 5183 +(5183) found +[1055] Forked 5184 +(5184) found +[1054] Forked 5185 +(5185) found +[1053] Forked 5186 +(5186) found +[1052] Forked 5187 +(5187) found +[1051] Forked 5188 +(5188) found +[1050] Forked 5189 +(5189) found +[1049] Forked 5190 +(5190) found +[1048] Forked 5191 +(5191) found +[1047] Forked 5192 +(5192) found +[1046] Forked 5193 +(5193) found +[1045] Forked 5194 +(5194) found +[1044] Forked 5195 +(5195) found +[1043] Forked 5196 +(5196) found +[1042] Forked 5197 +(5197) found +[1041] Forked 5198 +(5198) found +[1040] Forked 5199 +(5199) found +[1039] Forked 5200 +(5200) found +[1038] Forked 5201 +[1037] Forked 5202 +(5201) found +(5202) found +[1036] Forked 5203 +[1035] Forked 5204 +(5203) found +(5204) found +[1034] Forked 5205 +[1033] Forked 5207 +(5205) found +(5207) found +[1032] Forked 5208 +(5208) found +[1031] Forked 5209 +(5209) found +[1030] Forked 5210 +(5210) found +[1029] Forked 5211 +(5211) found +[1028] Forked 5212 +(5212) found +[1027] Forked 5213 +(5213) found +[1026] Forked 5214 +(5214) found +[1025] Forked 5215 +(5215) found +[1024] Forked 5216 +(5216) found +[1023] Forked 5217 +(5217) found +[1022] Forked 5218 +(5218) found +[1021] Forked 5219 +(5219) found +[1020] Forked 5220 +(5220) found +[1019] Forked 5221 +(5221) found +[1018] Forked 5222 +(5222) found +[1017] Forked 5223 +(5223) found +[1016] Forked 5224 +(5224) found +[1015] Forked 5225 +(5225) found +[1014] Forked 5226 +(5226) found +[1013] Forked 5227 +(5227) found +[1012] Forked 5228 +(5228) found +[1011] Forked 5229 +(5229) found +[1010] Forked 5230 +(5230) found +[1009] Forked 5231 +(5231) found +[1008] Forked 5232 +(5232) found +[1007] Forked 5233 +(5233) found +[1006] Forked 5234 +(5234) found +[1005] Forked 5235 +(5235) found +[1004] Forked 5236 +(5236) found +[1003] Forked 5237 +(5237) found +[1002] Forked 5238 +(5238) found +[1001] Forked 5239 +(5239) found +[1000] Forked 5240 +(5240) found +[999] Forked 5241 +(5241) found +[998] Forked 5242 +(5242) found +[997] Forked 5243 +(5243) found +[996] Forked 5244 +(5244) found +[995] Forked 5245 +(5245) found +[994] Forked 5246 +(5246) found +[993] Forked 5247 +(5247) found +[992] Forked 5248 +(5248) found +[991] Forked 5249 +(5249) found +[990] Forked 5250 +(5250) found +[989] Forked 5251 +(5251) found +[988] Forked 5252 +(5252) found +[987] Forked 5253 +(5253) found +[986] Forked 5254 +(5254) found +[985] Forked 5255 +(5255) found +[984] Forked 5256 +(5256) found +[983] Forked 5257 +(5257) found +[982] Forked 5258 +(5258) found +[981] Forked 5259 +(5259) found +[980] Forked 5260 +(5260) found +[979] Forked 5261 +(5261) found +[978] Forked 5262 +(5262) found +[977] Forked 5263 +(5263) found +[976] Forked 5264 +(5264) found +[975] Forked 5265 +(5265) found +[974] Forked 5266 +(5266) found +[973] Forked 5267 +(5267) found +[972] Forked 5268 +(5268) found +[971] Forked 5269 +(5269) found +[970] Forked 5270 +(5270) found +[969] Forked 5271 +(5271) found +[968] Forked 5272 +(5272) found +[967] Forked 5273 +(5273) found +[966] Forked 5274 +(5274) found +[965] Forked 5275 +[964] Forked 5276 +(5275) found +(5276) found +[963] Forked 5277 +[962] Forked 5278 +(5277) found +(5278) found +[961] Forked 5279 +[960] Forked 5280 +(5279) found +(5280) found +[959] Forked 5281 +[958] Forked 5282 +(5281) found +(5282) found +[957] Forked 5283 +[956] Forked 5284 +(5283) found +(5284) found +[955] Forked 5285 +[954] Forked 5286 +(5285) found +(5286) found +[953] Forked 5287 +[952] Forked 5288 +(5287) found +(5288) found +[951] Forked 5289 +[950] Forked 5290 +(5289) found +(5290) found +[949] Forked 5291 +[948] Forked 5292 +(5291) found +(5292) found +[947] Forked 5293 +[946] Forked 5294 +(5293) found +(5294) found +[945] Forked 5295 +[944] Forked 5296 +(5295) found +(5296) found +[943] Forked 5297 +[942] Forked 5298 +(5297) found +(5298) found +[941] Forked 5299 +[940] Forked 5300 +(5299) found +(5300) found +[939] Forked 5301 +[938] Forked 5302 +(5301) found +(5302) found +[937] Forked 5303 +[936] Forked 5304 +(5303) found +(5304) found +[935] Forked 5305 +[934] Forked 5306 +(5305) found +(5306) found +[933] Forked 5307 +[932] Forked 5308 +(5307) found +(5308) found +[931] Forked 5309 +[930] Forked 5310 +(5309) found +(5310) found +[929] Forked 5311 +[928] Forked 5312 +(5311) found +(5312) found +[927] Forked 5313 +[926] Forked 5314 +(5313) found +(5314) found +[925] Forked 5315 +[924] Forked 5316 +(5315) found +(5316) found +[923] Forked 5317 +(5317) found +[922] Forked 5318 +(5318) found +[921] Forked 5319 +(5319) found +[920] Forked 5320 +(5320) found +[919] Forked 5321 +(5321) found +[918] Forked 5322 +(5322) found +[917] Forked 5323 +(5323) found +[916] Forked 5324 +(5324) found +[915] Forked 5325 +(5325) found +[914] Forked 5326 +(5326) found +[913] Forked 5327 +(5327) found +[912] Forked 5328 +(5328) found +[911] Forked 5329 +(5329) found +[910] Forked 5330 +(5330) found +[909] Forked 5331 +(5331) found +[908] Forked 5332 +(5332) found +[907] Forked 5333 +(5333) found +[906] Forked 5334 +(5334) found +[905] Forked 5335 +(5335) found +[904] Forked 5336 +(5336) found +[903] Forked 5337 +(5337) found +[902] Forked 5338 +(5338) found +[901] Forked 5339 +(5339) found +[900] Forked 5340 +(5340) found +[899] Forked 5341 +(5341) found +[898] Forked 5342 +(5342) found +[897] Forked 5343 +(5343) found +[896] Forked 5344 +(5344) found +[895] Forked 5345 +(5345) found +[894] Forked 5346 +(5346) found +[893] Forked 5347 +(5347) found +[892] Forked 5348 +(5348) found +[891] Forked 5349 +(5349) found +[890] Forked 5350 +(5350) found +[889] Forked 5351 +(5351) found +[888] Forked 5352 +(5352) found +[887] Forked 5353 +[886] Forked 5354 +(5353) found +(5354) found +[885] Forked 5355 +[884] Forked 5356 +(5355) found +(5356) found +[883] Forked 5357 +[882] Forked 5358 +(5357) found +(5358) found +[881] Forked 5359 +[880] Forked 5360 +(5359) found +(5360) found +[879] Forked 5361 +[878] Forked 5362 +(5361) found +(5362) found +[877] Forked 5363 +[876] Forked 5364 +(5363) found +(5364) found +[875] Forked 5365 +[874] Forked 5366 +(5365) found +(5366) found +[873] Forked 5367 +(5367) found +[872] Forked 5368 +(5368) found +[871] Forked 5369 +[870] Forked 5370 +(5369) found +(5370) found +[869] Forked 5371 +[868] Forked 5372 +(5371) found +(5372) found +[867] Forked 5373 +[866] Forked 5374 +(5373) found +(5374) found +[865] Forked 5375 +[864] Forked 5376 +(5375) found +(5376) found +[863] Forked 5377 +[862] Forked 5378 +(5377) found +(5378) found +[861] Forked 5379 +[860] Forked 5380 +(5379) found +(5380) found +[859] Forked 5381 +[858] Forked 5382 +(5381) found +(5382) found +[857] Forked 5383 +[856] Forked 5384 +(5383) found +(5384) found +[855] Forked 5385 +[854] Forked 5386 +(5385) found +(5386) found +[853] Forked 5387 +[852] Forked 5388 +(5387) found +(5388) found +[851] Forked 5389 +[850] Forked 5390 +(5389) found +(5390) found +[849] Forked 5391 +[848] Forked 5392 +(5391) found +(5392) found +[847] Forked 5393 +[846] Forked 5394 +(5393) found +(5394) found +[845] Forked 5395 +[844] Forked 5396 +(5395) found +(5396) found +[843] Forked 5397 +[842] Forked 5398 +(5397) found +(5398) found +[841] Forked 5399 +[840] Forked 5400 +(5399) found +(5400) found +[839] Forked 5401 +[838] Forked 5402 +(5401) found +(5402) found +[837] Forked 5403 +[836] Forked 5404 +(5403) found +(5404) found +[835] Forked 5405 +[834] Forked 5406 +(5405) found +(5406) found +[833] Forked 5407 +[832] Forked 5408 +(5407) found +(5408) found +[831] Forked 5409 +[830] Forked 5410 +(5409) found +(5410) found +[829] Forked 5411 +[828] Forked 5412 +(5411) found +(5412) found +[827] Forked 5413 +[826] Forked 5414 +(5414) found +(5413) found +[825] Forked 5415 +(5415) found +[824] Forked 5416 +(5416) found +[823] Forked 5417 +(5417) found +[822] Forked 5418 +(5418) found +[821] Forked 5419 +(5419) found +[820] Forked 5420 +(5420) found +[819] Forked 5421 +(5421) found +[818] Forked 5422 +(5422) found +[817] Forked 5423 +(5423) found +[816] Forked 5424 +(5424) found +[815] Forked 5425 +(5425) found +[814] Forked 5426 +(5426) found +[813] Forked 5427 +(5427) found +[812] Forked 5428 +(5428) found +[811] Forked 5429 +(5429) found +[810] Forked 5430 +(5430) found +[809] Forked 5431 +(5431) found +[808] Forked 5432 +(5432) found +[807] Forked 5433 +(5433) found +[806] Forked 5434 +(5434) found +[805] Forked 5435 +(5435) found +[804] Forked 5436 +(5436) found +[803] Forked 5437 +(5437) found +[802] Forked 5438 +(5438) found +[801] Forked 5439 +(5439) found +[800] Forked 5440 +(5440) found +[799] Forked 5441 +(5441) found +[798] Forked 5442 +(5442) found +[797] Forked 5443 +(5443) found +[796] Forked 5444 +(5444) found +[795] Forked 5445 +(5445) found +[794] Forked 5446 +(5446) found +[793] Forked 5447 +(5447) found +[792] Forked 5448 +(5448) found +[791] Forked 5449 +(5449) found +[790] Forked 5450 +(5450) found +[789] Forked 5451 +(5451) found +[788] Forked 5452 +(5452) found +[787] Forked 5453 +(5453) found +[786] Forked 5454 +(5454) found +[785] Forked 5455 +(5455) found +[784] Forked 5456 +(5456) found +[783] Forked 5457 +(5457) found +[782] Forked 5458 +(5458) found +[781] Forked 5459 +(5459) found +[780] Forked 5460 +(5460) found +[779] Forked 5461 +(5461) found +[778] Forked 5462 +(5462) found +[777] Forked 5463 +(5463) found +[776] Forked 5464 +(5464) found +[775] Forked 5465 +(5465) found +[774] Forked 5466 +(5466) found +[773] Forked 5467 +(5467) found +[772] Forked 5468 +(5468) found +[771] Forked 5469 +(5469) found +[770] Forked 5470 +(5470) found +[769] Forked 5471 +(5471) found +[768] Forked 5472 +[767] Forked 5473 +(5472) found +(5473) found +[766] Forked 5474 +[765] Forked 5475 +(5474) found +(5475) found +[764] Forked 5476 +[763] Forked 5477 +(5476) found +(5477) found +[762] Forked 5478 +[761] Forked 5479 +(5478) found +(5479) found +[760] Forked 5480 +[759] Forked 5481 +(5480) found +(5481) found +[758] Forked 5482 +[757] Forked 5483 +(5482) found +(5483) found +[756] Forked 5484 +[755] Forked 5485 +(5484) found +(5485) found +[754] Forked 5486 +[753] Forked 5487 +(5486) found +(5487) found +[752] Forked 5488 +[751] Forked 5489 +(5488) found +(5489) found +[750] Forked 5490 +[749] Forked 5491 +(5490) found +(5491) found +[748] Forked 5492 +[747] Forked 5493 +(5492) found +(5493) found +[746] Forked 5494 +[745] Forked 5495 +(5494) found +(5495) found +[744] Forked 5496 +[743] Forked 5497 +(5496) found +(5497) found +[742] Forked 5498 +[741] Forked 5499 +(5498) found +(5499) found +[740] Forked 5500 +[739] Forked 5501 +(5500) found +(5501) found +[738] Forked 5502 +[737] Forked 5503 +(5502) found +(5503) found +[736] Forked 5504 +[735] Forked 5505 +(5504) found +(5505) found +[734] Forked 5506 +[733] Forked 5507 +(5506) found +(5507) found +[732] Forked 5508 +[731] Forked 5509 +(5508) found +(5509) found +[730] Forked 5510 +[729] Forked 5511 +(5510) found +(5511) found +[728] Forked 5512 +[727] Forked 5513 +(5512) found +(5513) found +[726] Forked 5514 +[725] Forked 5515 +(5514) found +(5515) found +[724] Forked 5516 +[723] Forked 5517 +(5516) found +(5517) found +[722] Forked 5518 +[721] Forked 5519 +(5518) found +(5519) found +[720] Forked 5520 +[719] Forked 5521 +(5520) found +(5521) found +[718] Forked 5522 +[717] Forked 5523 +(5522) found +(5523) found +[716] Forked 5524 +[715] Forked 5525 +(5524) found +(5525) found +[714] Forked 5526 +[713] Forked 5527 +(5526) found +(5527) found +[712] Forked 5528 +[711] Forked 5529 +(5528) found +(5529) found +[710] Forked 5530 +[709] Forked 5531 +(5530) found +(5531) found +[708] Forked 5532 +[707] Forked 5533 +(5532) found +(5533) found +[706] Forked 5534 +[705] Forked 5535 +(5534) found +(5535) found +[704] Forked 5536 +[703] Forked 5537 +(5536) found +(5537) found +[702] Forked 5538 +[701] Forked 5539 +(5538) found +(5539) found +[700] Forked 5540 +[699] Forked 5541 +(5540) found +(5541) found +[698] Forked 5542 +[697] Forked 5543 +(5542) found +(5543) found +[696] Forked 5544 +[695] Forked 5545 +(5544) found +(5545) found +[694] Forked 5546 +[693] Forked 5547 +(5546) found +(5547) found +[692] Forked 5548 +[691] Forked 5549 +(5548) found +(5549) found +[690] Forked 5550 +[689] Forked 5551 +(5550) found +(5551) found +[688] Forked 5552 +[687] Forked 5553 +(5552) found +(5553) found +[686] Forked 5554 +[685] Forked 5555 +(5554) found +(5555) found +[684] Forked 5556 +[683] Forked 5557 +(5556) found +(5557) found +[682] Forked 5558 +[681] Forked 5559 +(5558) found +(5559) found +[680] Forked 5560 +[679] Forked 5561 +(5560) found +(5561) found +[678] Forked 5562 +[677] Forked 5563 +(5562) found +(5563) found +[676] Forked 5564 +(5564) found +[675] Forked 5565 +(5565) found +[674] Forked 5566 +(5566) found +[673] Forked 5567 +(5567) found +[672] Forked 5568 +(5568) found +[671] Forked 5569 +(5569) found +[670] Forked 5570 +(5570) found +[669] Forked 5571 +(5571) found +[668] Forked 5572 +(5572) found +[667] Forked 5573 +(5573) found +[666] Forked 5574 +(5574) found +[665] Forked 5575 +(5575) found +[664] Forked 5576 +(5576) found +[663] Forked 5577 +(5577) found +[662] Forked 5578 +(5578) found +[661] Forked 5579 +(5579) found +[660] Forked 5580 +(5580) found +[659] Forked 5581 +(5581) found +[658] Forked 5582 +(5582) found +[657] Forked 5583 +(5583) found +[656] Forked 5584 +(5584) found +[655] Forked 5585 +(5585) found +[654] Forked 5586 +(5586) found +[653] Forked 5587 +(5587) found +[652] Forked 5588 +(5588) found +[651] Forked 5589 +(5589) found +[650] Forked 5590 +(5590) found +[649] Forked 5591 +(5591) found +[648] Forked 5592 +(5592) found +[647] Forked 5593 +(5593) found +[646] Forked 5594 +(5594) found +[645] Forked 5595 +(5595) found +[644] Forked 5596 +(5596) found +[643] Forked 5597 +(5597) found +[642] Forked 5598 +(5598) found +[641] Forked 5599 +(5599) found +[640] Forked 5600 +(5600) found +[639] Forked 5601 +[638] Forked 5602 +(5601) found +(5602) found +[637] Forked 5603 +[636] Forked 5604 +(5603) found +(5604) found +[635] Forked 5605 +[634] Forked 5606 +(5605) found +(5606) found +[633] Forked 5607 +[632] Forked 5608 +(5607) found +(5608) found +[631] Forked 5609 +[630] Forked 5610 +(5609) found +(5610) found +[629] Forked 5611 +[628] Forked 5612 +(5611) found +(5612) found +[627] Forked 5613 +[626] Forked 5614 +(5613) found +(5614) found +[625] Forked 5615 +[624] Forked 5616 +(5615) found +(5616) found +[623] Forked 5617 +[622] Forked 5618 +(5617) found +(5618) found +[621] Forked 5619 +[620] Forked 5620 +(5619) found +(5620) found +[619] Forked 5621 +[618] Forked 5622 +(5621) found +(5622) found +[617] Forked 5623 +[616] Forked 5624 +(5623) found +(5624) found +[615] Forked 5625 +[614] Forked 5626 +(5625) found +(5626) found +[613] Forked 5627 +[612] Forked 5628 +(5627) found +(5628) found +[611] Forked 5629 +[610] Forked 5630 +(5629) found +(5630) found +[609] Forked 5631 +[608] Forked 5632 +(5631) found +(5632) found +[607] Forked 5633 +[606] Forked 5634 +(5633) found +(5634) found +[605] Forked 5635 +[604] Forked 5636 +(5635) found +(5636) found +[603] Forked 5637 +[602] Forked 5638 +(5637) found +(5638) found +[601] Forked 5639 +[600] Forked 5640 +(5639) found +(5640) found +[599] Forked 5641 +[598] Forked 5642 +(5641) found +(5642) found +[597] Forked 5643 +[596] Forked 5644 +(5643) found +(5644) found +[595] Forked 5645 +[594] Forked 5646 +(5645) found +(5646) found +[593] Forked 5647 +[592] Forked 5648 +(5647) found +(5648) found +[591] Forked 5649 +[590] Forked 5650 +(5649) found +(5650) found +[589] Forked 5651 +[588] Forked 5652 +(5651) found +(5652) found +[587] Forked 5653 +[586] Forked 5654 +(5653) found +(5654) found +[585] Forked 5655 +[584] Forked 5656 +(5655) found +(5656) found +[583] Forked 5657 +[582] Forked 5658 +(5657) found +(5658) found +[581] Forked 5659 +[580] Forked 5660 +(5659) found +(5660) found +[579] Forked 5661 +[578] Forked 5662 +(5661) found +(5662) found +[577] Forked 5663 +[576] Forked 5664 +(5663) found +(5664) found +[575] Forked 5665 +[574] Forked 5666 +(5665) found +(5666) found +[573] Forked 5667 +[572] Forked 5668 +(5667) found +(5668) found +[571] Forked 5669 +[570] Forked 5670 +(5669) found +(5670) found +[569] Forked 5671 +[568] Forked 5672 +(5671) found +(5672) found +[567] Forked 5673 +[566] Forked 5674 +(5673) found +(5674) found +[565] Forked 5675 +[564] Forked 5676 +(5675) found +(5676) found +[563] Forked 5677 +[562] Forked 5678 +(5677) found +(5678) found +[561] Forked 5679 +[560] Forked 5680 +(5679) found +(5680) found +[559] Forked 5681 +[558] Forked 5682 +(5681) found +(5682) found +[557] Forked 5683 +[556] Forked 5684 +(5683) found +(5684) found +[555] Forked 5685 +[554] Forked 5686 +(5685) found +(5686) found +[553] Forked 5687 +[552] Forked 5688 +(5687) found +(5688) found +[551] Forked 5689 +[550] Forked 5690 +(5689) found +(5690) found +[549] Forked 5691 +[548] Forked 5692 +(5691) found +(5692) found +[547] Forked 5693 +(5693) found +[546] Forked 5694 +[545] Forked 5695 +(5694) found +(5695) found +[544] Forked 5696 +(5696) found +[543] Forked 5697 +[542] Forked 5698 +(5697) found +(5698) found +[541] Forked 5699 +[540] Forked 5700 +(5699) found +(5700) found +[539] Forked 5701 +[538] Forked 5702 +(5701) found +(5702) found +[537] Forked 5703 +[536] Forked 5705 +(5703) found +(5705) found +[535] Forked 5706 +(5706) found +[534] Forked 5707 +(5707) found +[533] Forked 5708 +(5708) found +[532] Forked 5709 +(5709) found +[531] Forked 5710 +(5710) found +[530] Forked 5711 +(5711) found +[529] Forked 5712 +(5712) found +[528] Forked 5713 +(5713) found +[527] Forked 5714 +(5714) found +[526] Forked 5715 +(5715) found +[525] Forked 5716 +(5716) found +[524] Forked 5717 +(5717) found +[523] Forked 5718 +(5718) found +[522] Forked 5719 +(5719) found +[521] Forked 5720 +(5720) found +[520] Forked 5721 +(5721) found +[519] Forked 5722 +(5722) found +[518] Forked 5723 +(5723) found +[517] Forked 5724 +(5724) found +[516] Forked 5725 +(5725) found +[515] Forked 5726 +(5726) found +[514] Forked 5727 +(5727) found +[513] Forked 5728 +(5728) found +[512] Forked 5729 +(5729) found +[511] Forked 5730 +(5730) found +[510] Forked 5731 +(5731) found +[509] Forked 5732 +(5732) found +[508] Forked 5733 +(5733) found +[507] Forked 5734 +(5734) found +[506] Forked 5735 +(5735) found +[505] Forked 5736 +(5736) found +[504] Forked 5737 +(5737) found +[503] Forked 5738 +(5738) found +[502] Forked 5739 +(5739) found +[501] Forked 5740 +(5740) found +[500] Forked 5741 +(5741) found +[499] Forked 5742 +(5742) found +[498] Forked 5743 +(5743) found +[497] Forked 5744 +(5744) found +[496] Forked 5745 +(5745) found +[495] Forked 5746 +(5746) found +[494] Forked 5747 +(5747) found +[493] Forked 5748 +(5748) found +[492] Forked 5749 +(5749) found +[491] Forked 5750 +(5750) found +[490] Forked 5751 +(5751) found +[489] Forked 5752 +(5752) found +[488] Forked 5753 +(5753) found +[487] Forked 5754 +(5754) found +[486] Forked 5755 +(5755) found +[485] Forked 5756 +(5756) found +[484] Forked 5757 +(5757) found +[483] Forked 5758 +(5758) found +[482] Forked 5759 +(5759) found +[481] Forked 5760 +(5760) found +[480] Forked 5761 +(5761) found +[479] Forked 5762 +(5762) found +[478] Forked 5763 +(5763) found +[477] Forked 5764 +(5764) found +[476] Forked 5765 +(5765) found +[475] Forked 5766 +(5766) found +[474] Forked 5767 +(5767) found +[473] Forked 5768 +(5768) found +[472] Forked 5769 +(5769) found +[471] Forked 5770 +(5770) found +[470] Forked 5771 +(5771) found +[469] Forked 5772 +(5772) found +[468] Forked 5773 +(5773) found +[467] Forked 5774 +(5774) found +[466] Forked 5775 +(5775) found +[465] Forked 5776 +(5776) found +[464] Forked 5777 +(5777) found +[463] Forked 5778 +(5778) found +[462] Forked 5779 +(5779) found +[461] Forked 5780 +(5780) found +[460] Forked 5781 +(5781) found +[459] Forked 5782 +(5782) found +[458] Forked 5783 +(5783) found +[457] Forked 5784 +(5784) found +[456] Forked 5785 +(5785) found +[455] Forked 5786 +(5786) found +[454] Forked 5787 +(5787) found +[453] Forked 5788 +(5788) found +[452] Forked 5789 +(5789) found +[451] Forked 5790 +(5790) found +[450] Forked 5791 +(5791) found +[449] Forked 5792 +(5792) found +[448] Forked 5793 +(5793) found +[447] Forked 5794 +(5794) found +[446] Forked 5795 +(5795) found +[445] Forked 5796 +(5796) found +[444] Forked 5797 +(5797) found +[443] Forked 5798 +(5798) found +[442] Forked 5799 +(5799) found +[441] Forked 5800 +(5800) found +[440] Forked 5801 +(5801) found +[439] Forked 5802 +(5802) found +[438] Forked 5803 +(5803) found +[437] Forked 5804 +[436] Forked 5805 +(5804) found +(5805) found +[435] Forked 5806 +[434] Forked 5807 +(5806) found +(5807) found +[433] Forked 5808 +[432] Forked 5809 +(5808) found +(5809) found +[431] Forked 5810 +[430] Forked 5811 +(5810) found +(5811) found +[429] Forked 5812 +[428] Forked 5813 +(5812) found +(5813) found +[427] Forked 5814 +[426] Forked 5815 +(5814) found +(5815) found +[425] Forked 5816 +[424] Forked 5817 +(5816) found +(5817) found +[423] Forked 5818 +[422] Forked 5819 +(5818) found +(5819) found +[421] Forked 5820 +[420] Forked 5821 +(5820) found +(5821) found +[419] Forked 5822 +[418] Forked 5823 +(5822) found +(5823) found +[417] Forked 5824 +[416] Forked 5825 +(5824) found +(5825) found +[415] Forked 5826 +[414] Forked 5827 +(5826) found +(5827) found +[413] Forked 5828 +[412] Forked 5829 +(5828) found +(5829) found +[411] Forked 5830 +[410] Forked 5831 +(5830) found +(5831) found +[409] Forked 5832 +[408] Forked 5833 +(5832) found +(5833) found +[407] Forked 5834 +[406] Forked 5835 +(5834) found +(5835) found +[405] Forked 5836 +[404] Forked 5838 +(5836) found +(5838) found +[403] Forked 5839 +(5839) found +[402] Forked 5840 +(5840) found +[401] Forked 5841 +(5841) found +[400] Forked 5842 +(5842) found +[399] Forked 5843 +(5843) found +[398] Forked 5844 +(5844) found +[397] Forked 5845 +(5845) found +[396] Forked 5846 +(5846) found +[395] Forked 5847 +(5847) found +[394] Forked 5848 +(5848) found +[393] Forked 5849 +(5849) found +[392] Forked 5850 +(5850) found +[391] Forked 5851 +(5851) found +[390] Forked 5852 +(5852) found +[389] Forked 5853 +(5853) found +[388] Forked 5854 +(5854) found +[387] Forked 5855 +(5855) found +[386] Forked 5856 +(5856) found +[385] Forked 5857 +(5857) found +[384] Forked 5858 +(5858) found +[383] Forked 5859 +(5859) found +[382] Forked 5860 +(5860) found +[381] Forked 5861 +(5861) found +[380] Forked 5862 +(5862) found +[379] Forked 5863 +(5863) found +[378] Forked 5864 +(5864) found +[377] Forked 5865 +(5865) found +[376] Forked 5866 +(5866) found +[375] Forked 5867 +(5867) found +[374] Forked 5868 +(5868) found +[373] Forked 5869 +(5869) found +[372] Forked 5870 +(5870) found +[371] Forked 5871 +(5871) found +[370] Forked 5872 +(5872) found +[369] Forked 5873 +(5873) found +[368] Forked 5874 +(5874) found +[367] Forked 5875 +(5875) found +[366] Forked 5876 +(5876) found +[365] Forked 5877 +(5877) found +[364] Forked 5878 +(5878) found +[363] Forked 5879 +(5879) found +[362] Forked 5880 +(5880) found +[361] Forked 5881 +(5881) found +[360] Forked 5882 +(5882) found +[359] Forked 5883 +(5883) found +[358] Forked 5884 +[357] Forked 5885 +(5884) found +(5885) found +[356] Forked 5886 +(5886) found +[355] Forked 5887 +[354] Forked 5888 +(5887) found +(5888) found +[353] Forked 5889 +[352] Forked 5890 +(5889) found +(5890) found +[351] Forked 5891 +[350] Forked 5892 +(5891) found +(5892) found +[349] Forked 5893 +[348] Forked 5894 +(5893) found +(5894) found +[347] Forked 5895 +[346] Forked 5896 +(5895) found +(5896) found +[345] Forked 5897 +[344] Forked 5898 +(5897) found +(5898) found +[343] Forked 5899 +[342] Forked 5900 +(5899) found +(5900) found +[341] Forked 5901 +[340] Forked 5902 +(5901) found +(5902) found +[339] Forked 5903 +[338] Forked 5904 +(5903) found +(5904) found +[337] Forked 5905 +[336] Forked 5906 +(5905) found +(5906) found +[335] Forked 5907 +[334] Forked 5908 +(5907) found +(5908) found +[333] Forked 5909 +[332] Forked 5910 +(5909) found +(5910) found +[331] Forked 5911 +[330] Forked 5912 +(5911) found +(5912) found +[329] Forked 5913 +[328] Forked 5914 +(5913) found +(5914) found +[327] Forked 5915 +[326] Forked 5916 +(5915) found +(5916) found +[325] Forked 5917 +[324] Forked 5918 +(5917) found +(5918) found +[323] Forked 5919 +[322] Forked 5920 +(5919) found +(5920) found +[321] Forked 5921 +[320] Forked 5922 +(5921) found +(5922) found +[319] Forked 5923 +[318] Forked 5924 +(5923) found +(5924) found +[317] Forked 5925 +[316] Forked 5926 +(5925) found +(5926) found +[315] Forked 5927 +[314] Forked 5928 +(5927) found +(5928) found +[313] Forked 5929 +[312] Forked 5930 +(5929) found +(5930) found +[311] Forked 5931 +[310] Forked 5932 +(5931) found +(5932) found +[309] Forked 5933 +[308] Forked 5934 +(5933) found +(5934) found +[307] Forked 5935 +[306] Forked 5936 +(5935) found +(5936) found +[305] Forked 5937 +[304] Forked 5938 +(5937) found +(5938) found +[303] Forked 5939 +[302] Forked 5940 +(5939) found +(5940) found +[301] Forked 5941 +[300] Forked 5942 +(5941) found +(5942) found +[299] Forked 5943 +[298] Forked 5944 +(5943) found +(5944) found +[297] Forked 5945 +[296] Forked 5946 +(5945) found +(5946) found +[295] Forked 5947 +[294] Forked 5948 +(5947) found +(5948) found +[293] Forked 5949 +[292] Forked 5950 +(5949) found +(5950) found +[291] Forked 5951 +[290] Forked 5952 +(5951) found +(5952) found +[289] Forked 5953 +[288] Forked 5954 +(5953) found +(5954) found +[287] Forked 5955 +[286] Forked 5956 +(5955) found +(5956) found +[285] Forked 5957 +[284] Forked 5958 +(5957) found +(5958) found +[283] Forked 5959 +[282] Forked 5960 +(5959) found +(5960) found +[281] Forked 5961 +[280] Forked 5962 +(5961) found +(5962) found +[279] Forked 5963 +[278] Forked 5964 +(5963) found +(5964) found +[277] Forked 5965 +[276] Forked 5966 +(5965) found +(5966) found +[275] Forked 5967 +[274] Forked 5968 +(5967) found +(5968) found +[273] Forked 5969 +[272] Forked 5970 +(5969) found +(5970) found +[271] Forked 5971 +[270] Forked 5972 +(5971) found +(5972) found +[269] Forked 5973 +[268] Forked 5974 +(5973) found +(5974) found +[267] Forked 5975 +(5975) found +[266] Forked 5976 +(5976) found +[265] Forked 5977 +(5977) found +[264] Forked 5978 +(5978) found +[263] Forked 5979 +(5979) found +[262] Forked 5980 +(5980) found +[261] Forked 5981 +(5981) found +[260] Forked 5982 +(5982) found +[259] Forked 5983 +(5983) found +[258] Forked 5984 +(5984) found +[257] Forked 5985 +(5985) found +[256] Forked 5986 +(5986) found +[255] Forked 5987 +(5987) found +[254] Forked 5988 +(5988) found +[253] Forked 5989 +(5989) found +[252] Forked 5990 +(5990) found +[251] Forked 5991 +(5991) found +[250] Forked 5992 +(5992) found +[249] Forked 5993 +(5993) found +[248] Forked 5994 +(5994) found +[247] Forked 5995 +(5995) found +[246] Forked 5996 +(5996) found +[245] Forked 5997 +(5997) found +[244] Forked 5998 +(5998) found +[243] Forked 5999 +(5999) found +[242] Forked 6000 +(6000) found +[241] Forked 6001 +(6001) found +[240] Forked 6002 +(6002) found +[239] Forked 6003 +(6003) found +[238] Forked 6004 +(6004) found +[237] Forked 6005 +(6005) found +[236] Forked 6006 +(6006) found +[235] Forked 6007 +(6007) found +[234] Forked 6008 +(6008) found +[233] Forked 6009 +(6009) found +[232] Forked 6010 +(6010) found +[231] Forked 6011 +[230] Forked 6012 +(6011) found +(6012) found +[229] Forked 6013 +[228] Forked 6014 +(6013) found +(6014) found +[227] Forked 6015 +[226] Forked 6016 +(6015) found +(6016) found +[225] Forked 6017 +[224] Forked 6018 +(6017) found +(6018) found +[223] Forked 6019 +[222] Forked 6020 +(6019) found +(6020) found +[221] Forked 6021 +[220] Forked 6022 +(6021) found +(6022) found +[219] Forked 6023 +[218] Forked 6024 +(6023) found +(6024) found +[217] Forked 6025 +[216] Forked 6026 +(6025) found +(6026) found +[215] Forked 6027 +[214] Forked 6028 +(6027) found +(6028) found +[213] Forked 6029 +[212] Forked 6030 +(6029) found +(6030) found +[211] Forked 6031 +[210] Forked 6032 +(6031) found +(6032) found +[209] Forked 6033 +[208] Forked 6034 +(6033) found +(6034) found +[207] Forked 6035 +[206] Forked 6036 +(6035) found +(6036) found +[205] Forked 6037 +[204] Forked 6038 +(6037) found +(6038) found +[203] Forked 6039 +[202] Forked 6040 +(6039) found +(6040) found +[201] Forked 6041 +[200] Forked 6042 +(6041) found +(6042) found +[199] Forked 6043 +[198] Forked 6044 +(6043) found +(6044) found +[197] Forked 6045 +[196] Forked 6046 +(6045) found +(6046) found +[195] Forked 6047 +[194] Forked 6048 +(6047) found +(6048) found +[193] Forked 6049 +[192] Forked 6050 +(6049) found +(6050) found +[191] Forked 6051 +[190] Forked 6052 +(6051) found +(6052) found +[189] Forked 6053 +[188] Forked 6054 +(6053) found +(6054) found +[187] Forked 6055 +[186] Forked 6056 +(6055) found +(6056) found +[185] Forked 6057 +[184] Forked 6058 +(6057) found +(6058) found +[183] Forked 6059 +[182] Forked 6060 +(6059) found +(6060) found +[181] Forked 6061 +[180] Forked 6062 +(6061) found +(6062) found +[179] Forked 6063 +[178] Forked 6064 +(6063) found +(6064) found +[177] Forked 6065 +[176] Forked 6066 +(6065) found +(6066) found +[175] Forked 6067 +[174] Forked 6068 +(6067) found +(6068) found +[173] Forked 6069 +[172] Forked 6070 +(6069) found +(6070) found +[171] Forked 6071 +[170] Forked 6072 +(6071) found +(6072) found +[169] Forked 6073 +[168] Forked 6074 +(6073) found +(6074) found +[167] Forked 6075 +[166] Forked 6076 +(6075) found +(6076) found +[165] Forked 6077 +[164] Forked 6078 +(6077) found +(6078) found +[163] Forked 6079 +[162] Forked 6080 +(6079) found +(6080) found +[161] Forked 6081 +[160] Forked 6082 +(6081) found +(6082) found +[159] Forked 6083 +[158] Forked 6084 +(6083) found +(6084) found +[157] Forked 6085 +[156] Forked 6086 +(6085) found +(6086) found +[155] Forked 6087 +[154] Forked 6088 +(6087) found +(6088) found +[153] Forked 6089 +[152] Forked 6090 +(6089) found +(6090) found +[151] Forked 6091 +[150] Forked 6092 +(6091) found +(6092) found +[149] Forked 6093 +[148] Forked 6094 +(6093) found +(6094) found +[147] Forked 6095 +[146] Forked 6096 +(6095) found +(6096) found +[145] Forked 6097 +[144] Forked 6098 +(6097) found +(6098) found +[143] Forked 6099 +[142] Forked 6100 +(6099) found +(6100) found +[141] Forked 6101 +[140] Forked 6102 +(6101) found +(6102) found +[139] Forked 6103 +(6103) found +[138] Forked 6104 +(6104) found +[137] Forked 6105 +(6105) found +[136] Forked 6106 +(6106) found +[135] Forked 6107 +(6107) found +[134] Forked 6108 +(6108) found +[133] Forked 6109 +(6109) found +[132] Forked 6110 +(6110) found +[131] Forked 6111 +(6111) found +[130] Forked 6112 +(6112) found +[129] Forked 6113 +(6113) found +[128] Forked 6114 +(6114) found +[127] Forked 6115 +(6115) found +[126] Forked 6116 +(6116) found +[125] Forked 6117 +(6117) found +[124] Forked 6118 +(6118) found +[123] Forked 6119 +(6119) found +[122] Forked 6120 +(6120) found +[121] Forked 6121 +(6121) found +[120] Forked 6122 +(6122) found +[119] Forked 6123 +(6123) found +[118] Forked 6124 +(6124) found +[117] Forked 6125 +(6125) found +[116] Forked 6126 +(6126) found +[115] Forked 6127 +(6127) found +[114] Forked 6128 +(6128) found +[113] Forked 6129 +(6129) found +[112] Forked 6130 +(6130) found +[111] Forked 6131 +(6131) found +[110] Forked 6132 +(6132) found +[109] Forked 6133 +(6133) found +[108] Forked 6134 +(6134) found +[107] Forked 6135 +(6135) found +[106] Forked 6136 +(6136) found +[105] Forked 6137 +(6137) found +[104] Forked 6138 +[103] Forked 6139 +(6138) found +(6139) found +[102] Forked 6140 +[101] Forked 6141 +(6140) found +(6141) found +[100] Forked 6142 +[99] Forked 6143 +(6142) found +(6143) found +[98] Forked 6144 +[97] Forked 6145 +(6144) found +(6145) found +[96] Forked 6146 +[95] Forked 6147 +(6146) found +(6147) found +[94] Forked 6148 +[93] Forked 6149 +(6148) found +(6149) found +[92] Forked 6150 +[91] Forked 6151 +(6150) found +(6151) found +[90] Forked 6152 +[89] Forked 6153 +(6152) found +(6153) found +[88] Forked 6154 +[87] Forked 6155 +(6154) found +(6155) found +[86] Forked 6156 +[85] Forked 6157 +(6156) found +(6157) found +[84] Forked 6158 +[83] Forked 6159 +(6158) found +(6159) found +[82] Forked 6160 +[81] Forked 6161 +(6160) found +(6161) found +[80] Forked 6162 +[79] Forked 6163 +(6162) found +(6163) found +[78] Forked 6164 +[77] Forked 6165 +(6164) found +(6165) found +[76] Forked 6166 +[75] Forked 6167 +(6166) found +(6167) found +[74] Forked 6168 +[73] Forked 6169 +(6168) found +(6169) found +[72] Forked 6170 +[71] Forked 6171 +(6170) found +(6171) found +[70] Forked 6172 +[69] Forked 6173 +(6172) found +(6173) found +[68] Forked 6174 +[67] Forked 6175 +(6174) found +(6175) found +[66] Forked 6176 +[65] Forked 6177 +(6176) found +(6177) found +[64] Forked 6178 +[63] Forked 6179 +(6178) found +(6179) found +[62] Forked 6180 +[61] Forked 6181 +(6180) found +(6181) found +[60] Forked 6182 +[59] Forked 6183 +(6182) found +(6183) found +[58] Forked 6184 +(6184) found +[57] Forked 6185 +(6185) found +[56] Forked 6186 +(6186) found +[55] Forked 6187 +(6187) found +[54] Forked 6188 +(6188) found +[53] Forked 6189 +(6189) found +[52] Forked 6190 +(6190) found +[51] Forked 6191 +(6191) found +[50] Forked 6192 +(6192) found +[49] Forked 6193 +(6193) found +[48] Forked 6194 +(6194) found +[47] Forked 6195 +(6195) found +[46] Forked 6196 +(6196) found +[45] Forked 6197 +(6197) found +[44] Forked 6198 +(6198) found +[43] Forked 6199 +(6199) found +[42] Forked 6200 +(6200) found +[41] Forked 6201 +(6201) found +[40] Forked 6202 +(6202) found +[39] Forked 6203 +(6203) found +[38] Forked 6204 +(6204) found +[37] Forked 6205 +(6205) found +[36] Forked 6206 +(6206) found +[35] Forked 6207 +(6207) found +[34] Forked 6208 +(6208) found +[33] Forked 6209 +(6209) found +[32] Forked 6210 +(6210) found +[31] Forked 6211 +(6211) found +[30] Forked 6212 +(6212) found +[29] Forked 6213 +(6213) found +[28] Forked 6214 +(6214) found +[27] Forked 6215 +(6215) found +[26] Forked 6216 +(6216) found +[25] Forked 6217 +(6217) found +[24] Forked 6218 +(6218) found +[23] Forked 6219 +(6219) found +[22] Forked 6220 +[21] Forked 6221 +(6220) found +(6221) found +[20] Forked 6222 +(6222) found +[19] Forked 6223 +(6223) found +[18] Forked 6224 +(6224) found +[17] Forked 6225 +[16] Forked 6226 +(6225) found +(6226) found +[15] Forked 6227 +[14] Forked 6228 +(6227) found +(6228) found +[13] Forked 6229 +[12] Forked 6230 +(6229) found +(6230) found +[11] Forked 6231 +[10] Forked 6232 +(6231) found +(6232) found +[9] Forked 6233 +[8] Forked 6234 +(6233) found +(6234) found +[7] Forked 6235 +[6] Forked 6236 +(6235) found +(6236) found +[5] Forked 6237 +[4] Forked 6239 +(6237) found +(6239) found +[3] Forked 6240 +(6240) found +[2] Forked 6241 +(6241) found +[1] Forked 6242 +(6242) found +[0] Forked 6243 +(6243) found diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/memcpy.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/memcpy.c new file mode 100644 index 00000000..3c6cc2ac --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/memcpy.c @@ -0,0 +1,46 @@ +#include /* memcpy() */ +#include + +struct cinit_answer { + int options; + char data[2045]; +}; + +int f1(struct cinit_answer *buf); +int f2(struct cinit_answer *buf); + +int f2(struct cinit_answer *buf) +{ + struct cinit_answer msg; + + printf("f2: %p\n", buf); + + msg.options = 12; + strcpy(msg.data, "stringit"); + + printf("addr= %p\n", memcpy(buf, &msg, sizeof(*buf))); + + printf("ok\n"); + + return 1; +} + +int f1(struct cinit_answer *buf) +{ + printf("f1: %p\n", buf); + printf("ret=%d\n", f2(buf)); + + return 1; +} + +int main() +{ + struct cinit_answer test; + + if(!f1(&test)) + return 1; + + printf("s: %s d: %d\n", test.data, test.options); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test-newline.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/test-newline.c new file mode 100644 index 00000000..4cccf535 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test-newline.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +char *strip_final_newline(char *test1); + +int main() +{ + // char *test1 = "zeile1\nzeile2\n"; + // char *test2 = "zeile1\nzeile2\nzeile3"; + char *test1; + char *test2; + + test1 = malloc(50); + test2 = malloc(50); + + strcpy(test1, "zeile1\nzeile2\n"); + strcpy(test2, "zeile1\nzeile2\nzeile3"); + + char *result; + + result = strip_final_newline(test1); + printf("A%sA\n", result); + + result = strip_final_newline(test2); + printf("B%sB\n", result); + + return 0; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_build_argv+link.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_build_argv+link.c new file mode 100644 index 00000000..87e46293 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_build_argv+link.c @@ -0,0 +1,37 @@ + +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * test build_argv + */ + +#include +#include +#include + +#include "build_argv.h" + +int main() +{ + char *file = "./test_exec_link"; + struct ba_argv cargv; + int tmp; + + if((tmp = cinit_build_argv(file, &cargv)) != BA_OK) { + if(tmp != BA_E_MEM) { + perror("fehler:"); + exit(24); + } else + exit(23); + } + + printf("code: %s\n", cargv.argv[0]); + execve((cargv.argv)[0], cargv.argv, cargv.envp); + + perror("execve"); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_build_argv.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_build_argv.c new file mode 100644 index 00000000..79ee5a48 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_build_argv.c @@ -0,0 +1,37 @@ + +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * test build_argv + */ + +#include +#include +#include + +#include "build_argv.h" + +int main() +{ + char *file = "./test_exec"; + struct ba_argv cargv; + int tmp; + + if((tmp = cinit_build_argv(file, &cargv)) != BA_OK) { + if(tmp != BA_E_MEM) { + perror("fehler:"); + exit(24); + } else + exit(23); + } + + printf("code: %s\n", cargv.argv[0]); + execve((cargv.argv)[0], cargv.argv, cargv.envp); + + perror("execve"); + + return 1; +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec new file mode 100755 index 00000000..e5cf3f01 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec @@ -0,0 +1,7 @@ +#!/bin/sh +# Nico Schottelius +# Test-skript for cinit + +echo '$0': "$0" +echo '$@': "$@" +echo 'cinit_is_great:' $cinit_is_great diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec.env b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec.env new file mode 100644 index 00000000..853e0663 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec.env @@ -0,0 +1 @@ +cinit_is_great=yes diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec.params b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec.params new file mode 100644 index 00000000..afe0f2ef --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec.params @@ -0,0 +1 @@ +Let's see if we read the arguments....YES! diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link new file mode 120000 index 00000000..c2ec9306 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link @@ -0,0 +1 @@ +test_exec \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link.env b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link.env new file mode 120000 index 00000000..30ea4990 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link.env @@ -0,0 +1 @@ +test_exec.env \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link.params b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link.params new file mode 120000 index 00000000..0b77c256 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_exec_link.params @@ -0,0 +1 @@ +test_exec.params \ No newline at end of file diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_gen_svc_tree.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_gen_svc_tree.c new file mode 100644 index 00000000..433be536 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_gen_svc_tree.c @@ -0,0 +1,21 @@ + +/*********************************************************************** + * + * 2006 Nico Schottelius (nico-cinit at schottelius.org) + * + * part of cLinux/cinit + * + * test gen_svc_tree + */ + +#include +#include +#include + +#include "build_argv.h" + +int main() +{ + gen_svc_tree("/etc/cinit/svc/init"); + list_display_all(); +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/test_openreadclose.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_openreadclose.c new file mode 100644 index 00000000..804a01b6 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/test_openreadclose.c @@ -0,0 +1,16 @@ +#include + +int openreadclose(char *filename, char **where); + +int main() +{ + char *data; + char *file = "test_openreadclose.c"; + + openreadclose(file, &data); + + printf("%s\n", data); + + return 1; + +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/tired.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/tired.c new file mode 100644 index 00000000..b6e33260 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/tired.c @@ -0,0 +1,22 @@ +#include + +struct msgq_server_short { + long mtype; + int mu; +}; + +main() +{ + struct msgq_server_short t1, *t2; + + t2 = &t1; + + int a = sizeof(t1); + int b = sizeof(t2); + int c = sizeof(*t2); + + printf("a=%d,b=%d,c=%d\n", a, b, c); + + return 0; + +} diff --git a/software/cinit/browse_source/cinit-0.3pre19/src/test/transfer_structure.c b/software/cinit/browse_source/cinit-0.3pre19/src/test/transfer_structure.c new file mode 100644 index 00000000..f9755df3 --- /dev/null +++ b/software/cinit/browse_source/cinit-0.3pre19/src/test/transfer_structure.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include + +struct test { + char buf[2048]; + int cmd; +}; + +struct badtest { + char *buf; + int cmd; +}; + +#define PATH "/etc/cinit/svc/local-tuning/udev" + +int main() +{ + struct test cmd; + struct badtest nocmd; + int pfd[2]; + int tmp; + + strcpy(cmd.buf, "/which/service/to/disable"); + cmd.cmd = 42; + + if(pipe(pfd) == -1) + return 1; + nocmd.cmd = 42; + nocmd.buf = malloc(strlen(PATH) + 1); + strcpy(nocmd.buf, PATH); + + if(fork() > 1) { + tmp = write(pfd[1], &cmd, sizeof(cmd)); + printf("PA: tmp=%d\n", tmp); + + tmp = write(pfd[1], &nocmd, sizeof(nocmd)); + printf("PA: tmp2=%d\n", tmp); + } else { + strcpy(cmd.buf, ""); + cmd.cmd = 0; + + tmp = read(pfd[0], &cmd, sizeof(cmd)); + printf("CH: tmp = %d, cmd = %d, buf = %s\n", tmp, cmd.cmd, cmd.buf); + + free(nocmd.buf); + nocmd.cmd = 0; + + tmp = read(pfd[0], &nocmd, sizeof(nocmd)); + printf("CH: tmp = %d, cmd = %d, buf = %s\n", tmp, nocmd.cmd, nocmd.buf); + } + + return 0; + +}